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

MySQL - klucz obcy przy usuwaniu wartości null w polu not null

Jeśli ustawisz ON DELETE SET NULL do twojego klucza obcego, to nie pozwoli ci ustawić pola jako NOT NULL .

Więc nie będziesz w stanie utworzyć ani zmienić tabeli z kolumną jako NOT NULL i ON DELETE SET NULL na identyfikatorze kraju

Kiedy uruchamiam poniższe stwierdzenia:

CREATE TABLE `country` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ;

CREATE TABLE `city` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `countryId` int(10) unsigned DEFAULT NOT NULL,
  PRIMARY KEY (`id`),
  KEY `FK_country` (`countryId`),
  CONSTRAINT `FK_country` FOREIGN KEY (`countryId`) REFERENCES `country` (`id`) ON DELETE SET NULL ON UPDATE SET NULL
);

I dostałem błąd w MySQL 5.5 jest:

Schema Creation Failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL,
  PRIMARY KEY (`id`),
  KEY `FK_country` (`countryId`),
  CONSTRAINT `' at line 4: 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XCode, uwierzytelnianie i NSUserDefaults

  2. Obejście MySQL Wyszukiwanie pełnotekstowe dla tabel innoDB

  3. co uniemożliwia PHP łączenie się z moją bazą danych MySQL?

  4. Nieznana kolumna Laravela „updated_at”

  5. MySQL:Sprawdź, czy użytkownik istnieje i usuń go