#mysql #sql #sql-server
#mysql #sql #sql-сервер
Вопрос:
например, если у вас есть эти строки
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;
не работает,
я знаю, что могу сначала удалить другую и после нее, но у меня есть база данных с большим количеством таблиц, и у них есть внешний ключ из другой таблицы, и я хочу удалить строку, поскольку все строки связаны с этой, удалите тоже
Ответ №1:
foreign key(col2) references table1(column1) on delete cascade
http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
Ответ №2:
Добавьте ON DELETE CASCADE
к вашему ограничению внешнего ключа.
Комментарии:
1. как это? я никогда не слышал об этом
2.
foreign key(col2) references table1(column1) on delete cascade
3. нет ли какой-нибудь другой простой формы? поскольку я не редактирую базу данных, мне друг сказал с кодом, удалите все связанные строки, я не знаю, что это за код @domsterr