Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL - हटाने पर विदेशी कुंजी शून्य क्षेत्र में शून्य सेट नहीं है

अगर आप ON DELETE SET NULL set सेट करते हैं आपकी विदेशी कुंजी के लिए तो यह आपको फ़ील्ड को NOT NULL . के रूप में सेट करने की अनुमति नहीं देगा ।

इसलिए आप कॉलम वाली तालिका को NOT NULL . के रूप में बनाने या बदलने में सक्षम नहीं होंगे और ON DELETE SET NULL देश आईडी . पर

जब मैं नीचे दिए गए कथनों को चलाता हूं:

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

और मुझे त्रुटि मिली MySQL 5.5 है:

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. mysql-apt-config [उबंटू 14.04] में 'ओके' का चयन नहीं कर सका

  2. मैसकल:डीबी को स्थानीय समय से यूटीसी में बदलें

  3. INSERT INTO नोड-mysql के साथ विफल रहता है

  4. MySQL कॉलम की परिभाषा कैसे बदलें?

  5. एसक्यूएल जॉइन में डुप्लिकेट रिकॉर्ड