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 查看表约束关系的,描述的很模糊,不是很清楚怎么用。 展开
第二个问题是有两个表: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 查看表约束关系的,描述的很模糊,不是很清楚怎么用。 展开
1个回答
推荐于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个视图.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询