mysql级联删除更新】的更多相关文章

首先,目前在产品环境可用的MySQL版本(指4.0.x和4.1.x)中,只有InnoDB引擎才允许使用外键,所以,我们的数据表必须使用InnoDB引擎. 下面,我们先创建以下测试用数据库表: CREATE TABLE `roottb` (   `id` INT(11) UNSIGNED AUTO_INCREMENT NOT NULL,   `data` VARCHAR(100) NOT NULL DEFAULT '',   PRIMARY KEY (`id`) ) TYPE=InnoDB; CR…
一.FOREIGN KEY 的定义分为两种:列级约束和表级约束 .列及约束的话,可以在列定义的同时,定义外键约束.比如 如果有2张表,主表:T1(A1 )) 要在从表T2中定义外键列这可以: Create table T2( B1 int, B2 ) [FOREIGN KEY] references T1(A1) ) /*这里的“[FOREIGN KEY] references T1(A1)”就是外键定义了,[]是可 选项,就是可以省略*/ .如果是表级约束的话,则可以 CREATE TABLE…
一个building对应多个rooms,building删除----级联删除相关的rooms 第一步, 创建buildings表,如下创建语句: USE testdb; CREATE TABLE buildings ( building_no INT PRIMARY KEY AUTO_INCREMENT, building_name VARCHAR(255) NOT NULL, address VARCHAR(255) NOT NULL )ENGINE=InnoDB DEFAULT CHARSE…
1.新建主键table create table demo1_zhujian ( id int primary key auto_increment, name )); 2.新建外键table create table demo2_waijian ( id int primary key auto_increment, _id , name ), index (_id), FOREIGN KEY (_id) REFERENCES demo1_zhujian(id) ON DELETE CASCA…
MySQL中利用外键实现级联删除.更新 MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作,包括RESTRICT.NO ACTION.SET NULL和CASCADE.其中RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新:CASCADE表示父表在更新或者删除时,更新或者删除子表对应记录:SET NULL则是表示父表…
MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定在删除.更新父表时,对子表进行的相应操作,包括RESTRICT.NO ACTION.SET NULL和CASCADE.其中RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新:CASCADE表示父表在更新或者删除时,更新或者删除子表对应记录:SET NULL则是表示父表在更新或者删除的时候,子表的对应字段被S…
一.首先创建两张表stu,sc create table stu( sid int UNSIGNED primary key auto_increment, name ) not null) TYPE=InnoDB charset=utf8; create table sc( scid int UNSIGNED primary key auto_increment, sid int UNSIGNED not null, score ) ', index (sid), --外键必须加索引 FORE…
1. 准备测试表 # 专业表major ))engine=innodb default charset=utf8; # 学生表mstudent ), major int)engine=innodb default charset=utf8; # 添加外键约束(级联删除) alter table mstudent add constraint fk_major_stu foreign key(major) references major(id) on delete cascade; # 插入数据…
一.首先创建两张表stu,sc create table stu( sid int UNSIGNED primary key auto_increment, name varchar(20) not null) TYPE=InnoDB charset=utf8; create table sc( scid int UNSIGNED primary key auto_increment, sid int UNSIGNED not null, score varchar(20) default '0…
1.mysql级联更新有两种方式:触发器更新和外键更新. 2.触发器更新和外键更新的目的都是为了保证数据完整性. 我们通常有这样的需求:删除表Table 1中记录,需要同时删除其它表中与Table 1有关的若干记录. 举个例子: 现有2个实体- 麻将机 学生.课程,1种联系- 成绩 分别创建 学生表 students, 课程表course,成绩表score --创建 学生表 students CREATE TABLE IF NOT EXISTS `students` ( `id` int(11)…