我想一次删除两个表中的数据。
示例:
表1:
create table del1
(
cola varchar(10) primary key,
colb varchar(10)
);
表2:
create table del2
(
cola varchar(10) foreign key references del1(cola) on delete cascade,
colb varchar(10)
)
插入一些数据:
insert into del1 values('a','b');
insert into del2 values('a','d');
查询删除记录:
delete from del1 as d1
inner join del2 as d2
on d1.cola= d2.cola
where d1.cola= 'a'
错误:
Incorrect syntax near the keyword 'as'.
答案 0 :(得分:3)
实际上你不需要加入这两张桌子。 del1表上的delete
会自动删除 del2表,因为您有on delete cascade
这就是你需要的。
delete from del1 where cola='a'
此声明将从del1中删除,其中cola =' a'还有del2表,其中cola =' a'
答案 1 :(得分:2)
不需要加入。由于On Cascade delete
,它将删除两个记录
delete from del1 where cola= 'a'