mysqlsql级联删除
Ⅰ mysql怎么删除两张有关联的表的数据
用事务处理来删除,A,B表关联数据的删除需要放在同一事务中
Ⅱ 怎么写mysql数据库延迟级联删除命令
举例:
1、建筑表
CREATE TABLE buildings (
building_no INT PRIMARY KEY AUTO_INCREMENT,
building_name VARCHAR(255) NOT NULL,
address VARCHAR(255) NOT NULL
);
2、房间表
CREATE TABLE rooms (
room_no INT PRIMARY KEY AUTO_INCREMENT,
room_name VARCHAR(255) NOT NULL,
building_no INT NOT NULL,
FOREIGN KEY (building_no)
REFERENCES buildings (building_no)
ON DELETE CASCADE //这里指定了级联删除
);
3、执行删除会把building_no=2的room记录都删除了
DELETE FROM buildings
WHERE
building_no = 2;
Ⅲ 使用mysql语句实现级联删除
触发器,A表删除动作触发B表的删除动作
Ⅳ mysql怎么设置级联删除
这个在建表的时候就可以指定了
CREATE TABLE buildings (
building_no INT PRIMARY KEY AUTO_INCREMENT,
building_name VARCHAR(255) NOT NULL,
address VARCHAR(255) NOT NULL
);
CREATE TABLE rooms (
room_no INT PRIMARY KEY AUTO_INCREMENT,
room_name VARCHAR(255) NOT NULL,
building_no INT NOT NULL,
FOREIGN KEY (building_no)
REFERENCES buildings (building_no)
ON DELETE CASCADE
);
当执行
DELETE FROM buildings
WHERE
building_no = 2;的时候,rooms表中的building_no =2的记录都会被删掉。
Ⅳ MySQL写触发器,级联删除
不需要触发器,在sc表上创建关联student主键的级联删除外键
Ⅵ mysql级联删除触发器
你的数据库访问层是不是用Hibernate的?如果是Hibernate的话,可以再hbm.xml文件里设置cascade=“delete”就可以进行级联操作了。
如果不是Hibernate,而是用JdBC的话,且使用触发器的话,就要按照MySQL的触发器的编写规范来写了,你的这个触发器像是Oracle的。