假如有主表 test_main 与 子表 test_sub\x0d\x0aSQL -- 创建外键(默认选项)\x0d\x0aSQL ALTER TABLE test_sub ADD CONSTRAINT main_id_cons FOREIGN KEY (main_id) REFERENCES test_main;\x0d\x0aTable altered.\x0d\x0a\x0d\x0a删除外键约束\x0d\x0aALTER TABLE test_sub DROP CONSTRAINT main_id_cons;
成都创新互联公司是一家专业提供周口企业网站建设,专注与网站建设、成都做网站、成都h5网站建设、小程序制作等业务。10年已为周口众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
SQL和 Oracle外键的相关约束中的级联删除 我们在相关的系统中如果你要删除相关记录 我们就要关联一起删除N多张表 同时它们之间还存在着相互约束的关系 所以考虑到在创建表时加上约束关系
详细内容如下:
SQL的Oracle外键约束可以实现级联删除与级联更新;Oracle 则只充许级联删除
SQL级联删除与级联更新使用格式
CREATE TABLE A (ID INT PRIMARY KEY NAME VARCHAR( ))
CREATE TABLE A (ID INT REFERENCES A (ID)ON DELETE CASCADE ON UPDATE CASCADE AGE TINYINT)
Oracle 级联删除使用格式
CREATE TABLE A (ID INT PRIMAY KEY NAME VARCHAR ( ))
CREATE TABLE A (ID INT REFERENCES A (ID)ON DELETE CASCADE AGE NUMBER( ))
CREATE TABLE groups
(
id VARCHAR ( ) CONSTRAINT pk_groupid PRIMARY KEY
name VARCHAR ( )
description VARCHAR ( )
)
TABLESPACE userspace;
CREATE TABLE usringrp
(
group_id VARCHAR ( ) CONSTRAINT fk_uing_grpid
REFERENCES groups(id)
ON DELETE CASCADE
user_id VARCHAR ( )
)
TABLESPACE userspace;
PowerDesigner
参照完整性约束
限制(Restrict) 不允许进行修改或删除操作 若修改或删除主表的主键时 如果子表中存在子记录 系统将产生一个错误提示 这是缺省的参照完整性设置
置空(Set Null) 如果Oracle外键列允许为空 若修改或删除主表的主键时 把子表中参照的外键列设置为空值(NULL)
置为缺省(Set Default) 如果指定了缺省值 若修改或删除主表的主键时 把子表中参照的Oracle外键设置为缺省值(Default)
级联(Cascade) 把主表中主键修改为一个新的值时 相应修改子表中Oracle外键的值 或者删除主表中主键的记录时 要相应删除子表中外键的记录
lishixinzhi/Article/program/Oracle/201311/17613
添加约束语句格式:\x0d\x0aalter table 表名 add constraint 主键约束名 primary key(主键列名表序列);\x0d\x0a如:\x0d\x0aalter table 修课表 add constraint pk_xh_kc primary key(学号,课程号);\x0d\x0a\x0d\x0a删除约束语句格式:\x0d\x0aalter table 表名 drop CONSTRAINT 主键约束名;\x0d\x0a如:\x0d\x0aalter table 修课表 drop CONSTRAINT pk_xh_kc;