请问oracle如何设置某列对应另一列的值只能出现一次

如字段A值为a,b,c,字段X为0,1,2等,当字段A值为a时字段X为0或1或2,但字段X值为1只能出现1次

联合码,但是这样做也有BUG,空值BUG。追问

已设置默认值为1,怎样设置联合码呢?unique?

追答

两列组合确定唯一值,就叫联合码。
最典型的联合码:三列,第一列是年、第二列是月、第三列是日。该三列可以指定历史上的任意一个日期,三列组合在一起是唯一的,不可重复的。但是任意一列里面的数据是可以重复的。具体如何指定,请自己百度查找,印象深一些。虽然我会,如果直接告诉你不是帮你,而是害了你。

追问

第二列默认値为1时只能出现1次,但其他情况都置为0的啊

追答

所以,我说你这样做是有BUG的,如果按照这种需求,是无法实现的。只能通过代码逻辑进行判定,或者写入时进行控制。通过设置数据库的办法,以我做数据库十年的工作经验,是不可能的。

追问

谢谢你!

温馨提示:内容为网友见解,仅供参考
无其他回答

求sql语法
入所要添加的表格名称,然后在括号中列出将要添加新值的列的名称。最后 ,在关键词values的后面按照前面输入的列的顺序对应的输入所有要添加的 记录值。 更新记录 SQL语言使用update语句更新或修改满足规定条件的现有记录。 Update语句的格式为: update tablename set columnname = newvalue [, nextcolumn = newval...

oracle存储过程中循环调用存储过程
1、没有必要每次都提交,到了CKPT,系统自动处理的 2、出现异常你可以回滚 3、提交了的不会回滚 4、调用的时候不提交,循环后统一提交 后面的问题:关键的地方把SQL语句打印出来,根据这些SQL语句查询出数据做分析

Oracle数据库中nextval和values代表什么意思
用 NEXTVAL 生成一个新值以后,可以继续使用 CURRVAL 访问这个值,不管另一个用户是否增加这个序列。如果sequence.CURRVAL 和 sequence.NEXTVAL 都出现在一个 SQL 语句中,则序列只增加一次。在这种情况下,每个 sequence.CURRVAL 和 sequence.NEXTVAL 表达式都返回相同的值,不管在语句中 sequence.CURRVAL 和 sequence.NEXTVA...

ORA-00001: 违反唯一约束条件 (CDS.PK_DUM_DIMENSION),这个问题具体应该...
查询DUM_DIMENSION序列最大值的下一个值,把查到的值添加到相应序列的起始值即可。oracle中唯一约束可以为空,并且空值可以重复,并不是空只能为一次,可以去测试。主键约束 是唯一约束和不能为空。两者最主要的区别就是主键约束不能为空,而Unique可以为空并且空值可以重复。根据错误提示,是是因为插入...

创建一个序列,第一次从5循环到10,以后再从0开始循环。如果数据的控制文...
根据初始话文件LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET 的设置的数值来确定 用户触发 以下进程的启动需要手工配置 g、ARCH 当数据库以归档方式运行的时候,Oracle会启动ARCH进程,当重做日志文件被写满时,日志文件进行切换,旧的重做日志文件就被ARCH进程复制到一个\/多个特定的目录\/远程机...

oracle创建视图以及如何创建表
唯一性约束条件的字段允许出现空值Oracle将为唯一性约束条件创建对应的唯一性索引自定义约束Check约束用于对一个属性的值加以限制createtablet_stuInfo7(sidnumber(4) primarykey,phone char(11) unique,age number(3) check(age>0andage<100))insertintot_stuInfo7values(1000,‘18612341234‘,-10)外键约束create...

oracle 数据库sqlplus ,select * from emp; 查询出来的结果一次只显示14...
不是sqlplus显示14条,而是你的小黑屏只能显示这么大。所以你根本的解决方法是设置下windows的DOS(小黑屏)。打开小黑屏。右击任务栏上的小黑屏任务,进入属性。进入布局。按照我这个图设置就行了。最后点击确定,出现个对话框。点击第二个:保存属性,。。。 再点确定。

oracle用户设置登录次数为unlimit,为什么用户还是被锁
1 执行 EXEC SP_LOCK 报告有关锁的信息 2 查询分析器中按Ctrl+2可以看到锁的信息 七 使用注意事项 如何避免死锁 1 使用事务时,尽量缩短事务的逻辑处理过程,及早提交或回滚事务; 2 设置死锁超时参数为合理范围,如:3分钟-10分种;超过时间,自动放弃本次操作,避免进程悬挂; 3 优化程序,检查并避免死锁现象出现; ...

Oracle正则表达式
Select regexp_instr('asdfafdda>fda','sd') from dualOutput:2这里去查询sd的位置,这个和instr是在相同的 Select regexp_instr('asdfafdda>fda','da',1,2) from dual这里是查询da第二出现的位置 还有我们经常会遇到一种情况是,查询某个字段,如果是等于“上海”或“北京”或者我们温州就写成大城市,其它...

为什么这个存储过程执行的性能这么差
不 能用null作索引,任何包含null值的列都将不会被包含在索引中。即使索引有多列这样的情况下,只要这些列中有一列含有null,该列就会从索引中排 除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。任何在WHERE子句中使用is null或is not null的语句优化器是不允 许使用索引的。 4 IN和EXISTS: ...

相似回答