Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвам каскада за изтриване на MySQL MyISAM механизъм за съхранение?

да. Просто не можете с този двигател.

редактиране. Бихте могли да напишете задействане, което след като изтриете запис във вашата таблица, изтрийте всички дъщерни записи във всички останали таблици.

Добре. Написах ти пример:

 create table tab1 (
 id int )
 engine = myisam;

insert into tab1 values (1),(2),(3),(4); 

 create table tab2(
 id int not null auto_increment primary key,
 id_tab1 int
 ) engine = myisam;

 insert into tab2 (id_tab1) values (1),(2),(2),(3),(4);

 create table tab3(
 id int not null auto_increment primary key,
 id_tab1 int
 ) engine = myisam;

  insert into tab3 (id_tab1) values (1),(2),(2),(3),(2);


delimiter //
create trigger deletecascade after delete on tab1
for each row
begin
delete from tab2 where id_tab1 = old.id;
delete from tab3 where id_tab1 = old.id;
end; //
delimiter ;

delete from tab1 where id = 2;

Надявам се, че помага.

редактиране. Очевидно работи, дори ако изтриете повече идентификатор от table1 едновременно:

delete from tab1 where id in (2,3,4);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python, MySQL и SELECT извеждат в речник с имена на колони за ключове

  2. Извличане на данни за броене от Firebase като MySQL

  3. активно сумиране на записи в codeigniter

  4. как да предам нулева стойност на поле за външен ключ?

  5. Кога да използвате единични кавички, двойни кавички и обратни кавички в MySQL