问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求助,sql外键的创建问题

发布网友 发布时间:2022-04-28 18:32

我来回答

2个回答

热心网友 时间:2022-04-13 17:39

-- 创建外键(默认选项)
ALTER TABLE test_sub ADD CONSTRAINT main_id_cons  FOREIGN KEY (main_id)  REFERENCES  test_main;

-- 删除 外键约束 

ALTER TABLE test_sub DROP CONSTRAINT main_id_cons;



不知道楼主明白了么?

那个 constraint id_fk 中的  id_fk


是为了 方便你 删除外键



当然了。某些数据库, 是 允许 暂时 禁用外键约束.

禁用的时候, 也是要给一个名字的。


下面是一段 Oracle 的例子

SQL> -- 创建外键(默认选项)
SQL> ALTER TABLE test_sub ADD CONSTRAINT main_id_cons  FOREIGN KEY (main_id)  REFERENCES  test_main;
表已更改。

SQL> -- 测试插入子表数据. 将出错 ORA-02291: 违反完整约束条件
SQL> INSERT INTO test_sub (ID, MAIN_ID, VALUE) VALUES (3, 3, 'THREETHREE');
INSERT INTO test_sub (ID, MAIN_ID, VALUE) VALUES (3, 3, 'THREETHREE')
*
ERROR 位于第 1 行:
ORA-02291: 违反完整约束条件 (TEST.MAIN_ID_CONS) - 未找到父项关键字

-- 尝试禁用外键约束.
SQL> ALTER TABLE test_sub  MODIFY   CONSTRAINT main_id_cons DISABLE;
表已更改。


SQL> INSERT INTO test_sub (ID, MAIN_ID, VALUE) VALUES (3, 3, 'THREETHREE');
已创建 1 行。

SQL> INSERT INTO test_main(id, value) VALUES (3, 'THREE');
已创建 1 行。

SQL> commit;
提交完成。

-- 恢复启用外键约束.
SQL> ALTER TABLE test_sub  MODIFY   CONSTRAINT main_id_cons  ENABLE;
表已更改。


SQL> DELETE test_main  WHERE ID = 1;
DELETE test_main  WHERE ID = 1
*
ERROR 位于第 1 行:
ORA-02292: 违反完整约束条件 (TEST.MAIN_ID_CONS) - 已找到子记录

热心网友 时间:2022-04-13 18:57

alter table gradeadd constraint id_fk foreign key (id) references student (id)
这条语句中
id_fk 是你创建的这个外键的名称
foreign key (id) 这里的id表示本表,也就是gradeadd表你要建立外键的字段名
references student (id) 这一句是指定你参照的表和列名
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... ORA 02291: 违反完整约束条件 (SCOTT.SYS_C005172) 未找到父项关键字... 在线急等!ORA-02291: 违反完整约束条件 (SDTA863.FK_T_INFO_S_TYPE_S... ...提示:ORA-02291:违反完整性约束条件(HUYANG.SYS_C009677)-未找到父... ...ORA-02291: 违反完整约束条件 (SYSTEM.SYS_C0011 电脑版钉钉看直播插上耳机有声音,拔掉耳机没有声音,这是怎么回事?_百 ... ...对方却听不到我的声音这是为什么?电脑跟耳机没有问题 昆山离职取公积金需要什么材料 昆山公积金离职了可以在支付宝提取么? 我在昆山张浦一家外企工作离职后公积金怎么提取 我在昆山离职都三个月了 住房公积金现在可以提取嘛 离职了,昆山怎么提取公积金? 在昆山离职以后社保和公积金该怎么办 谁可以告诉我昆山离职后公积金怎么取 本人在昆山工作,离职后公积金怎麼取出来? 昆山离职公积金提取条件和提取流程 昆山离职多久公积金可以提取 紫砂壶什么样的包浆才算是好包浆? 自己的紫砂壶养不出包浆是为啥 老紫砂壶刷洗干净后还能养出包浆吗 为什么你的紫砂壶很难养出包浆 ORA-02292: 违反完整约束条件 已找到子记录 有问题的表分别为A B A是... 用的是jsp页面增加数据,直接用下拉框选择外键所在的表中的值,还出现... Oracle报错说违反完整约束条件应该怎样解决? ORACLE PL/SQL问题解决 hibernate 级联保存失败 oracle的插入问题 enable novalidate为什么不可用 ORA-02292: 违反完整约束条件 - 已找到子记录 违反完整约束条件,该怎么解决 ...ORA-02292: 违反完整约束条件 已找到子记录 oracle 添加外键,报“未找到父项关键字”(NEWER.SYS_C0010852) 怎么知道视频作品授权了 (急)怎么判断网络上的视频是否有版权?还有app上的视频如何判断是否有版权? 怎么样才能知道一个网站上的视频是否享有版权? 抖音直播西瓜视频的影视作品没有版权 我电脑里有很多视频 我想上传新浪播客 有的就成 有的就失败 怎么判断我又没有权利上传某个视频 版权问题? 怎么才能看到 因版权只能在中国大陆播放的视频。学习要用 关于视频版权问题 不同公司的视频版权为何不同,如何获得视频版权? 网络视频传播和再剪辑的版权纠纷,如何判定是否侵权