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

di mysql, saat hapus kaskade tidak berfungsi

Jika Anda membuat t2 seperti ini, ini berfungsi dengan baik:

CREATE TABLE  `t2` (
  `id` bigint(20) unsigned NOT NULL,
  `data2` text,
  PRIMARY KEY (`id`),
  CONSTRAINT `FK_t2_1` FOREIGN KEY (`id`) REFERENCES `t1` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ETA, sebagai jawaban atas kekhawatiran tentang kode jelek, di bawah ini juga berfungsi:

CREATE TABLE  t2 (
  id bigint(20) unsigned NOT NULL PRIMARY KEY,
  data2 text,
  CONSTRAINT  FOREIGN KEY (id) REFERENCES t1(id) ON DELETE CASCADE
) ENGINE=InnoDB ;

Perbedaan utama adalah bahwa tipe data untuk t2.id harus sesuai dengan t1.id dan batasan harus dideklarasikan setelah kolom.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menambahkan data ke bidang database MySQL yang sudah memiliki data di dalamnya

  2. Pernyataan SQL untuk menulis tabel?

  3. Cara update kolom id mulai dari 1 lagi

  4. Memigrasikan MySQL ke PostgreSQL di AWS RDS, Bagian 4

  5. Pembaruan MYSQL dengan kesalahan subquery WHERE SELECT