oracle唯一性约束的查询

例如,唯一键约束
>create table test (a number constraint uni_test_a unique,b number);
如果我不记得我给的唯一约束的名字,怎么查询到这条约束名。

另外其他的,主键约束,完整性约束,非空约束的查询也能说下不。

不知道你有没有pl/sql。在pl/sql的sql window 里写上你这你这个表的表名,按住ctrl键再用鼠标点这个表名,就会出现关于这个表的信息窗然后点击‘key’这个选项卡就可以看到唯一键约束,主键约束,外键,点击check可以看到其他完整性约束的名
不用写语句也很直观追问

我这是在服务端,linux下面的,能些sql或者pl/sql语句不

追答

怎么一直没提交上呀,这是我回答的第三遍了。
语句楼上的高手已经说的差不多了吧,就是是到USER_CONSTRAINTS和USER_CONS_COLUMNS里查,我这里针对你的test表写一下:
select * from USER_CONSTRAINTS where table_name = 'MA_BACC';
SELECT A.*,B.constraint_type
FROM USER_CONS_COLUMNS A LEFT JOIN USER_CONSTRAINTS B ON A.constraint_name=B.constraint_name
WHERE constraint_type='P' AND A.table_name='TEST' ;
where的constraint_type就像楼上说的一样 C 表示 CHECK 约束 P 表示主键 U 表示唯一
R 表示引用(外键)
table_name后写上你的表名(注意一定要大写)
当然如果你不写constraint_type只写table_name就会出现相应表的所有约束。
如果你建了很多用户都有test这个表的话最好在where后加一句T.OWNER='你的用户名(大写)'
你自己查一下USER_CONSTRAINTS,USER_CONS_COLUMNS就知道了,不知道你那信息量大不大,大的话查一下全十行看看就知道了。
不知道能不能帮到你了?

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-11
SELECT
USER_CONS_COLUMNS.CONSTRAINT_NAME AS 约束名,
USER_CONS_COLUMNS.TABLE_NAME AS 表名,
USER_CONS_COLUMNS.COLUMN_NAME AS 列名,
USER_CONS_COLUMNS.POSITION AS 位置
FROM
USER_CONSTRAINTS
JOIN USER_CONS_COLUMNS
ON (USER_CONSTRAINTS.CONSTRAINT_NAME
= USER_CONS_COLUMNS.CONSTRAINT_NAME)
WHERE
CONSTRAINT_TYPE = 'P';

注: 最后那里的 WHERE 填写的条件的注意:
C (check constraint on a table) C 表示 CHECK 约束。
P (primary key) P 表示主键
U (unique key) U 表示唯一
R (referential integrity) P 表示引用(外键)
V (with check option, on a view)
O (with read only, on a view)追问

能不能先针对我第一个问题,写一条SELECT语句咯

第2个回答  2011-08-12
知道表名就行了:
select * from user_constraints where table_name='你的表名';
表名要全部大写,如果你的数据库设置了忽略大小写的话就不用了
你看看user_constraints 表就知道了,你说的主键等约束都有

oracle唯一性约束的查询
不知道你有没有pl\/sql。在pl\/sql的sql window 里写上你这你这个表的表名,按住ctrl键再用鼠标点这个表名,就会出现关于这个表的信息窗然后点击‘key’这个选项卡就可以看到唯一键约束,主键约束,外键,点击check可以看到其他完整性约束的名 不用写语句也很直观 ...

oracle 怎么查询唯一索引
(1)视图dba_constraints,这张表中有所有的表的约束,拥有唯一约束的字段就拥有唯一索引,其中Constraint_type的值应该是U,不过值是R的表示主键,这个也存在唯一索引,不知道你要不要找这种,所以个人认为在这张表内能找到。(当然,还有相关的all视图和user视图)(2)视图dba_indexes,这里的index_ty...

oracle怎么查询所有的表有没有主键
3、查找表的唯一性约束(包括名称,构成列):select column_name from user_cons_columns cu,user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U'and au.table_name = 要查询的表 4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成...

Oracle数据库入门(三)唯一约束
唯一性约束确保一列或几列中不出现重复项,允许该列出现一个空值。字段定义时,直接使用 "字段名 数据类型 UNIQUE" 确定唯一性。完成所有列定义后,通过 "Constrains Unique" 指定唯一约束。与 PRIMARY KEY 相比,UNIQUE 的主要区别在于 PRIMARY KEY 不仅确保列不重复,且必须为非空值。而 UNIQUE 则允许...

ORALCE如何根据条件设置唯一约束?
在Oracle数据库中,可以使用唯一约束(Unique Constraint)来确保表中的某列或多列的值是唯一的。以下是根据条件设置唯一约束的一般步骤:1、创建表时定义唯一约束:在创建表时,可以使用CREATE TABLE语句来定义唯一约束。在列定义中使用UNIQUE关键字,标识要设置唯一约束的列。例如:2、使用ALTER TABLE语句添加...

请问如何设置Oracle唯一约束,忽略已有的重复值
1.检查当前oracle 唯一约束创建的索引的unique的列的值. 必须是not unique.2.如果是unique这要删除该约束重新建,新建的约束先disable,并且要deferred 3.这时候检查oracle 唯一约束创建的索引的unique的列的值你会发现该索引时not unique 4.接下来你就可以enable 该约束了 明天天帖出示例,现在没时间 ...

在导入Oracle数据库的时候违反唯一约束条件是为什么
首先,可以使用`IGNORE`或`SKIP`选项在导入命令中忽略冲突数据,继续导入剩余数据。这样数据库会跳过冲突的数据行,不会导致整个导入过程失败。其次,可以先更新目标表中与导入数据冲突的记录,使用`UPDATE`语句根据需要进行数据更新,使其符合唯一约束条件,然后再进行导入。第三,可以先删除目标表中与导入...

oracle批量更新时,提示"违反唯一约束条件",如何判断是哪一条?_百度知...
WHERE H.病人ID=G.EXAM_STAFFID AND G.YKTZH IS NOT NULL)WHERE 病人ID IN (SELECT A.EXAM_STAFFID FROM YYTJ.EXAM_STAFF A WHERE A.YKTZH IS NOT NULL)另外如果你想在更新的时候找出具体的行出了问题可参考下边的方法:DECLARE -- Local variables here I INTEGER;NUMROWS INTEGER...

oracle的一致性约束中的参考键以及select userenv('language') from d...
唯一属性,唯一约束可以定义在一个或多个字段上;唯一约束使该字段或该组字段中的值唯一,可以为空,但是,不能重复。Constraint constraint_name unique(column)select userenv('language') from dual 查看字符集,结果:SIMPLIFIED CHINESE_CHINA.AL32UTF8。trunc:TRUNC(n1[,n2] 返回截尾到n2位小数的...

谈谈唯一约束和唯一索引
首先,解释一下术语:约束是数据库中用于维护数据准确性和一致性的规则,而索引则是为了加速查询速度而创建的数据结构,就像书的目录。唯一约束确保一个字段或字段组内的数据无重复,允许 NULL 值,但仅限于一条记录。而唯一索引则禁止相同的索引值,防止键值重复,但并不限制 NULL 值。尽管两者功能相似...

相似回答