Mysql
 sql >> Baza danych >  >> RDS >> Mysql

w mysql, przy usuwaniu kaskady nie działa

Jeśli utworzysz t2 w ten sposób, działa dobrze:

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, w odpowiedzi na obawy dotyczące brzydkiego kodu, działa również poniższe:

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 ;

Główna różnica polega na tym, że typ danych dla t2.id musi odpowiadać typowi t1.id, a ograniczenia muszą być zadeklarowane po kolumnach.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać instrukcji IF w kwerendzie sprzężenia MySQL?

  2. Jakie są limity połączeń dla Google Cloud SQL z App Engine i jak najlepiej ponownie wykorzystać połączenia z bazą danych?

  3. Automatycznie dodawaj litery przed polem automatycznego przyrostu

  4. Czy powinienem używać jednej dużej instrukcji SQL Select, czy kilku małych?

  5. Hibernacja hbm2ddl.auto domyślna wartość