sql >> Database teknologi >  >> RDS >> Mysql

Hvordan bruger man delete cascade på MySQL MyISAM storage engine?

Ja. Det kan du simpelthen ikke med den motor.

redigere. Du kan skrive en udløser, der, når du sletter en post i din tabel, sletter alle underordnede poster i alle de andre tabeller.

Okay. Jeg skrev et eksempel til dig:

 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;

Håber at det hjælper.

redigere. Det virker selvfølgelig, selvom du sletter flere id fra tabel1 på samme tid:

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



  1. MySQL-grupper efter dato og antal inklusive manglende datoer

  2. Analyse af I/O-ydeevne for SQL Server

  3. SQL Server (localdb)\v11.0 forklaret

  4. gemme en adgangskode sikkert til api uden at kryptere den