Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menggunakan kaskade penghapusan pada mesin penyimpanan MySQL MyISAM?

Ya. Anda tidak bisa dengan mesin itu.

mengedit. Anda dapat menulis pemicu bahwa setelah Anda menghapus catatan di tabel Anda, hapus semua catatan anak di semua tabel lainnya.

Oke. Saya menulis sebuah contoh untuk Anda:

 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;

Semoga membantu.

mengedit. Jelas itu berfungsi bahkan jika Anda menghapus lebih banyak id dari table1 secara bersamaan:

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. Pagination untuk menunjukkan nilai maksimal dan membatasi sisanya

  2. Pisahkan versi situs web yang berbeda

  3. Menghitung perbedaan waktu antara 2 tanggal dalam menit

  4. Bagaimana Fungsi REGEXP_INSTR() Bekerja di MySQL

  5. Jumlah koneksi yang optimal di kumpulan koneksi