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:1、先给B表添加主键列
alter table tableB add constraint b_PK primary key(date,channel)
2、将B表的组合主键关联到A表的外键组合键中
alter table tableB add constraint tableB_fk foreign key(date,channel) references tableA (date,channel) on DELETE CASCADE
3 delete from tableA where date =? and channel =? 就出发相关记录··~
create trigger update_id on afor delete
as
Declare @qqlx_bid varchar(20)
Declare @qqlx_cid varchar(20)
--获得删除记录
select @qqlx_bid=bid,@qqlx_cid=cid from deleted
update b set bid=0 where bid=@qqlx_bid
update c set cid=0 where cid=@qqlx_cid
end
go
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)