SQL中用语句查看表列的约束以及解除约束

第一个问题是求语句的,不多补充了。使用的是OracleSQLDevelooper第二个问题是有两个表:department(deptno[PK],deptname,dep... 第一个问题是求语句的,不多补充了。使用的是Oracle SQL Develooper
第二个问题是有两个表:department(deptno[PK],deptname,deptlocation,empno[FK]) 和employee(empno[PK],....很多列...,deptno[FK],mgrno[FK])
表的关系是department.empno=employee.mgrno(也就是D表的empno就是E表的manager NO.)
employee.deptno=department.deptno(也就是E表的employee必须都在D表的department工作)
除了用CASCADE(据说对数据库完整性有破坏??不是很确定。)之外有什么办法能drop两个表的PK和FK
第一个问题的补充:网上的SC_HELP 经过证实语句无效。
Alter...drop PRIMARY/FOREIGN KEY... 显示无法找到表格(实际是存在的),或者是无法找到Constraint关系(非常的奇怪,查看表格的时候确认constraint存在,但是drop的时候显示不存在)

网上我还找到很多关于select 查看表约束关系的,描述的很模糊,不是很清楚怎么用。
展开
 我来答
匿名用户
推荐于2017-09-03
展开全部
SELECT
  USER_CONS_COLUMNS.CONSTRAINT_NAME AS 约束名,
  USER_CONS_COLUMNS.TABLE_NAME AS 表名,
  USER_CONS_COLUMNS.COLUMN_NAME AS 列名,
  USER_CONS_COLUMNS.POSITION AS 位置,
  CONSTRAINT_TYPE,
  SEARCH_CONDITION
FROM
  USER_CONSTRAINTS
    JOIN USER_CONS_COLUMNS
    ON (USER_CONSTRAINTS.CONSTRAINT_NAME
        = USER_CONS_COLUMNS.CONSTRAINT_NAME)
WHERE
  CONSTRAINT_TYPE IN ('C', 'V', 'O');

 

 其实主要就是看

USER_CONSTRAINTS    与   USER_CONS_COLUMNS  这2个视图.

 

数据库管理员的话

可以看

DBA_CONSTRAINTS    与   DBA_CONS_COLUMNS  这2个视图.

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式