sql >> Databasteknik >  >> RDS >> Mysql

i mysql, på delete cascade fungerar inte

Om du skapar t2 så här fungerar det bra:

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, som svar på frågor om ful kod, fungerar nedanstående också:

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 ;

Den största skillnaden är att datatypen för t2.id måste matcha den för t1.id och begränsningar måste deklareras efter kolumnerna.



  1. PHP - Exportera MySQL-tabeller till JSON-fil

  2. mysql hamming avstånd mellan två phash

  3. Konvertera BIGINT UNSIGNED till INT

  4. Är det nödvändigt att skriva ROLLBACK om frågor misslyckas?