oracle为表建立外键时没有命名FOREIGN KEY约束,现在想删外键怎么办?? 30
为表Orders添加外键,ALTERTABLEOrdersADDFOREIGNKEY(Id_P)REFERENCESPersons(Id_P),现在想删除外键,但是当初没...
为表Orders添加外键,ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P),现在想删除外键,但是当初没有命名FOREIGN KEY 约束,现在如何删除外键!! 展开
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P),现在想删除外键,但是当初没有命名FOREIGN KEY 约束,现在如何删除外键!! 展开
5个回答
展开全部
SELECT
USER_CONS_COLUMNS.CONSTRAINT_NAME AS 约束名,
USER_CONS_COLUMNS.TABLE_NAME AS 子表名,
USER_CONS_COLUMNS.COLUMN_NAME AS 子表列名,
USER_CONS_COLUMNS.POSITION AS 位置,
USER_INDEXES.TABLE_NAME AS 主表名,
USER_IND_COLUMNS.COLUMN_NAME AS 主表列名
FROM
USER_CONSTRAINTS
JOIN USER_CONS_COLUMNS
ON (USER_CONSTRAINTS.CONSTRAINT_NAME
= USER_CONS_COLUMNS.CONSTRAINT_NAME)
JOIN USER_INDEXES
ON (USER_CONSTRAINTS.R_CONSTRAINT_NAME
= USER_INDEXES.INDEX_NAME)
JOIN USER_IND_COLUMNS
ON (USER_INDEXES.INDEX_NAME = USER_IND_COLUMNS.INDEX_NAME)
WHERE
CONSTRAINT_TYPE = 'R';
用上面句子查一下,然后用下面语句删掉
ALTER TABLE 表名 DROP CONSTRAINT 外键约束名字;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用删除表,
数据库会自动命名,名字可能是sys_XXXXXX,这个能找到。如果有plsql那么可以通过plsql的一个功能直接查到建表语句,这里就有名字。要么可以通过相关视图根据字段查到。视图是user_constraints或者dba_constraints,里面的字段记不清楚了,自己查查吧。
数据库会自动命名,名字可能是sys_XXXXXX,这个能找到。如果有plsql那么可以通过plsql的一个功能直接查到建表语句,这里就有名字。要么可以通过相关视图根据字段查到。视图是user_constraints或者dba_constraints,里面的字段记不清楚了,自己查查吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接删好了。
追问
如何直接删??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接用show create table 表名;查出约束名,
然后删除用 alter table 表名 drop foreign key 约束名;
然后删除用 alter table 表名 drop foreign key 约束名;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询