oracle唯一性约束的查询

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

另外其他的,主键约束,完整性约束,非空约束的查询也能说下不。
展开
 我来答
l451900201
推荐于2017-11-24
知道答主
回答量:6
采纳率:0%
帮助的人:12万
展开全部
不知道你有没有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就知道了,不知道你那信息量大不大,大的话查一下全十行看看就知道了。
不知道能不能帮到你了?
莱伯泰科
2024-10-28 广告
LabTech Group,即北京莱伯泰科仪器股份有限公司,是业界领先的实验室科学仪器与解决方案提供商。我们专注于分析测试仪器的研发、生产和销售,致力于为全球科研工作者、高校及企业实验室提供高性能、高稳定性的产品与服务。通过持续的技术创新与... 点击进入详情页
本回答由莱伯泰科提供
wangzhiqing999
2011-08-11 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3326万
展开全部
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语句咯
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雨枫TQ1
2011-08-12 · 超过27用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:58万
展开全部
知道表名就行了:
select * from user_constraints where table_name='你的表名';
表名要全部大写,如果你的数据库设置了忽略大小写的话就不用了
你看看user_constraints 表就知道了,你说的主键等约束都有
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式