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 约束,现在如何删除外键!!
展开
 我来答
匍地飞鹰
2019-07-04
知道答主
回答量:10
采纳率:0%
帮助的人:2.5万
展开全部
oracle不知道跟mysql一样不,命令行中操作mysql,直接用,
alter table Orders drop foreign key Id_P;
会有错误提示信息,提示信息里有系统提供的外键约束名字,
然后根据系统提供的外键约束名字来删除就可以了。
大话残剑
2015-11-22 · TA获得超过2217个赞
知道大有可为答主
回答量:1137
采纳率:56%
帮助的人:712万
展开全部
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   外键约束名字;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
绳树枝浮辰
2019-07-08 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:29%
帮助的人:810万
展开全部
不用删除表,
数据库会自动命名,名字可能是sys_XXXXXX,这个能找到。如果有plsql那么可以通过plsql的一个功能直接查到建表语句,这里就有名字。要么可以通过相关视图根据字段查到。视图是user_constraints或者dba_constraints,里面的字段记不清楚了,自己查查吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
那女生站住
2015-11-22 · 超过20用户采纳过TA的回答
知道答主
回答量:101
采纳率:0%
帮助的人:23.7万
展开全部
直接删好了。
追问
如何直接删??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
瀚哥略吊
2018-02-17
知道答主
回答量:2
采纳率:0%
帮助的人:1657
展开全部
直接用show create table 表名;查出约束名,
然后删除用 alter table 表名 drop foreign key 约束名;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式