sql >> Database teknologi >  >> RDS >> Mysql

MySQL - Fremmednøgle ved sletning sæt null i ikke null-feltet

Hvis du indstiller ON DELETE SET NULL til din fremmednøgle, så vil det ikke tillade dig at sætte feltet som NOT NULL .

Så du vil ikke være i stand til at oprette eller ændre tabellen med kolonne som NOT NULL og ON DELETE SET NULLCountryId

Når jeg kører nedenstående udsagn:

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

Og jeg fik fejlen i MySQL 5.5 er:

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. Opret et skalerbart databaseskema til lagring af golfresultater

  2. I hvilken rækkefølge behandles ON DELETE CASCADE-begrænsninger?

  3. LAST_DAY() Eksempler – MySQL

  4. InnoDB:duplikerede indekser fundet - er det meget dårligt?