如果有外键,你怎么删除一行? SQL

时间:2011-04-30 00:18:37

标签: mysql sql sql-server

例如,如果您有此行

create table table1 
(
column1 int primary key,
column2 varchar(50),
column3 varchar(50),
column4 varchar(50),
)

create table tabla2
(
col1 int primary key,
col2 int,
col3 varchar(50),
foreign key(col2) references table1(column1)
)

例如我有一行

insert into table1(column1,column2,column3,column4) values (1,'a','b','c');

insert into table2(col1,col2,col3) values (1,1,'xxx');

我希望删除所有这些行(只是它们)

delete from table1 where colum1=1; 

不起作用,

我知道我可以先删除另一个并在它之后,但我有一个包含很多表的数据库 并且他们有一个外键,因为另一个表,我想删除该行,因为所有行都与此相关,也删除

2 个答案:

答案 0 :(得分:3)

foreign key(col2) references table1(column1) on delete cascade

http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html

答案 1 :(得分:1)

ON DELETE CASCADE添加到外键约束中。