上面可以看出FileOwner是文件表的外键,引用的是用户表的UserID。且这里外键约束设置为"ON DELETE SET NULL ON UPDATE CASCADE " 现在用户表有记录(省略其他无关的字段): UserID ST001 ,而文件表有记录 FileID FileOwner1ST001 那 么如果我删除用户表中ST001对应记录时,则根据ON DELETE SET NULL规则,文件表中Fil...
那 么如果我删除用户表中ST001对应记录时,则根据ON DELETE SET NULL规则,文件表中FileOwner应该被设置为null,动手尝试后也确实如此;如果我将用户表中ST001改为ST003,则根据ON UPDATECASCADE规则,文件表中FileOwner应该连锁设置为ST003,也的确如此。 外键的使用对于减少数据库冗余性,以及保证数据完整性和一...
(4)set null方式:在父表上update/delete记录时,将子表上匹配记录的列设为null 要注意子表的外键列不能为not null On delete set null从mysql3.23.50开始可用;,on update set null从mysql4.0.8开始可用 。 首先创建一个用户表,并插入两条记录: mysql>create table t_group-> (idintauto_increment primary ...
NO ACTION: 见下方“ON DELETE NO ACTION”。 此种策略需要存储引擎支持,如果存储引擎不支持,会自动换为RESTRICT。 RESTRICT:同“NO ACTION”。 SET NULL: 从 主表中删除对应的行/更新主表主键,从表中的外键列设为NULL。 注意,当从表外键列没有被设为NOT NULL时才有效 ON DELETE SET NULL 和 ON UPDATE S...
On delete set null从mysql3.23.50开始可用;,on update set null从mysql4.0.8开始可用 。 1. 首先创建一个用户表,并插入两条记录: 复制代码 mysql> create table t_group -> (id int auto_increment primary key, -> name varchar(20)) -> engine=InnoDB; ...
alter table emp add constraint fk_emp_dept_id foreignkey(dept_id)referencesdept(id)on updatesetnullondeletesetnull; 测试: 删除dept表中的第一行,然后刷新,我们可以看到emp表中的id为1的数据全部置为null了。 通过图形化界面创建 选中预修改的表,然后点击modify table,再点击foreign keys ,双击命令,我们可以...
#ON UPDATE CASCADE 更新主表中的数据时,从表中的数据随之更新 #ON DELETE SET NULL 删除主表中的数据时,从表中的数据置为空 #默认 删除主表中的数据前需先删除从表中的数据,否则主表数据不会被删除 CREATE TABLE students( stu_id INT(10) AUTO_INCREMENT PRIMARY KEY, ...
1 InnoDB支持5种方式, 分列如下cascade方式在父表上update/delete记录时,同步update/delete掉子表的匹配记录On delete cascade从mysql3.23.50开始可用; on update cascade从mysql4.0.8开始可用 2 set null方式在父表上update/delete记录时,将子表上匹配记录的列设为null要注意子表的外键列不能为not nullOn ...
2 3 (MS SQL Server)语句:update b set ClientName = a.name fr...