Mysql
 sql >> база данни >  >> RDS >> Mysql

в mysql, каскадата за изтриване не работи

Ако създадете t2 по този начин, той работи добре:

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, в отговор на притесненията относно грозен код, по-долу също работи:

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 ;

Основната разлика е, че типът данни за t2.id трябва да съвпада с този на t1.id и ограниченията трябва да бъдат декларирани след колоните.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Целочислен диапазон при създаване на таблици

  2. Как да експортирате база данни от Amazon RDS MySQL екземпляр към локален екземпляр?

  3. mysql ГРЕШКА 2002 (HY000):Не може да се свърже с локален MySQL сървър чрез сокет '/var/run/mysqld/mysqld.sock' (2)

  4. Как мога да използвам прозрачно криптиране на данни с MySQL?

  5. Как да се свържа с Mysql с помощта на C#?