桌子没有正确放下

时间:2019-06-20 13:13:30

标签: sql oracle

未正确删除表-结果是该表上的约束仍然存在,请您提出建议,如何在不存在的表上禁用/删除约束。

我尝试了级联,但最终出现了错误-表不存在。

2 个答案:

答案 0 :(得分:0)

您可以使用以下条件查询约束条件

SELECT owner, table_name, constraint_type, status FROM user_constraints

约束类型是

之一
  • C 检查表列
  • O 只读视图对象
  • P 主键
  • R 引用AKA外键
  • U 唯一键
  • V 在视图上选中选项

请参阅:https://en.wikibooks.org/wiki/Oracle_Database/SQL_Cheatsheet#Constraint_types_and_codes

我假设其他表上有外键约束(类型“ R”)指向您要删除的表。 您可以删除受影响的约束,或暂时禁用

答案 1 :(得分:0)

这就是我使用SQL的方式

--Drop a Constraint 
if exists (select * from sysobjects where xtype = 'f' and name = 'Constraint Name')
    alter table "Table Name"
      Drop constraint "Constraint Name"   
go

希望这会有所帮助。