sql >> Databáze >  >> RDS >> Mysql

v mysql nefunguje kaskáda mazání

Pokud vytvoříte t2 takto, funguje to dobře:

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, v reakci na obavy ohledně ošklivého kódu, funguje také níže:

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 ;

Hlavním rozdílem je, že datový typ pro t2.id musí odpovídat datovému typu t1.id a omezení musí být deklarována za sloupci.



  1. MariaDB JSON_CONTAINS() Vysvětleno

  2. Jak CRC32 funguje v MariaDB

  3. Jaký je rozdíl mezi vazebnými proměnnými a substitučními proměnnými (které zadám pomocí &&)?

  4. SQL Server, zavádějící XLOCK a optimalizace