十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
删除主表的记录时,你必先删除子表的记录才能够删主表的记录
目前创新互联已为近千家的企业提供了网站建设、域名、网站空间、绵阳服务器托管、企业网站设计、镇赉网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
删除子表的记录时,你可以直接删除
ORACLE
数据库支持级联删除,但要看你的约束是怎么建的
1.ON
DELETE
CASCADE
(级联删除)
2.ON
DELETE
SET
NULL
(删除主表,子表列设置NULL)
没有设置上面两种方式,缺省是不允许删除,必须遵循下面的方式
删除主表的记录时,你必先删除子表的记录才能够删主表的记录
删除子表的记录时,你可以直接删除
增加外键:
alter table 表名 add constraint 外键名 foreign key (字段名1) references 关联表 (字段名2);
-- 删除外键
alter table 表名 drop constraint 外键名;
oracle不知道跟mysql一样不,命令行中操作mysql,直接用,
alter table Orders drop foreign key Id_P;
会有错误提示信息,提示信息里有系统提供的外键约束名字,
然后根据系统提供的外键约束名字来删除就可以了。
假如有主表 test_main 与 子表 test_sub
SQL -- 创建外键(默认选项)
SQL ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main;
Table altered.
删除外键约束
ALTER TABLE test_sub DROP CONSTRAINT main_id_cons;
select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R';
祝贺楼主成功。
1楼说的怎么可能?只要删除外键约束了,然后你就可以删除这个表的数据,不会影响到引用外键的表。