sql >> Database >  >> RDS >> Mysql

MySQL - Foreign key bij verwijderen set null in niet null veld

Als u ON DELETE SET NULL . instelt naar uw externe sleutel, dan kunt u het veld niet instellen als NOT NULL .

U kunt de tabel dus niet maken of wijzigen met een kolom als NOT NULL en ON DELETE SET NULL op Land-ID

Als ik de onderstaande instructies uitvoer:

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
);

En ik kreeg de fout in MySQL 5.5 is:

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. Kun je helpen om de zoekopdracht of een andere zoekopdracht aan te passen om het verwachte resultaat te krijgen?

  2. Live update MySQL-gegevens

  3. Meerdere kolommen controleren op één waarde

  4. Mysql fulltext booleaanse zoekopdracht - sorteer op relevantie en nog een veld