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

MySql प्राथमिक कुंजी बाधा नाम के साथ

यह ठीक उसी तरह है जैसे MySQL CONSTRAINT pk_PersonID को अनदेखा करता है अंश। आप टेबल बनाकर और फिर उसे डंप करके या SHOW CREATE TABLE Persons जारी कर चेक कर सकते हैं। ।

मुझे लगता है कि यह केवल अन्य SQL सर्वर के साथ संगतता के लिए इस सिंटैक्स का समर्थन करता है (लेकिन इसे प्राथमिक और अन्य स्थानीय कुंजी के लिए अनदेखा करता है) और इसकी जानकारी (बाधा नाम) को संग्रहीत नहीं करता है।

हालांकि विदेशी कुंजियों के साथ उपयोग के लिए CONSTRAINT कीवर्ड का उपयोग MySQL में भी किया जाता है।

mysql> CREATE TABLE test.Persons (
    -> P_Id int NOT NULL,
    -> LastName varchar(255) NOT NULL,
    -> FirstName varchar(255),
    -> Address varchar(255),
    -> City varchar(255),
    -> CONSTRAINT pk_PersonID PRIMARY KEY (P_Id)
    -> );
Query OK, 0 rows affected (0.50 sec)

server$ mysqldump -p test Persons
Enter password:
--
-- Table structure for table `Persons`
--
DROP TABLE IF EXISTS `Persons`;
CREATE TABLE `Persons` (
  `P_Id` int(11) NOT NULL,
  `LastName` varchar(255) NOT NULL,
  `FirstName` varchar(255) DEFAULT NULL,
  `Address` varchar(255) DEFAULT NULL,
  `City` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`P_Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

यहां यह साबित करने के लिए परीक्षण भी है कि MySQL कहीं भी बाधा नाम संग्रहीत नहीं करता है और त्रुटियों को प्रिंट करते समय इसका उपयोग नहीं करता है (जैसा कि प्रश्न में अन्य SQL सर्वर के लिए उल्लेख किया गया है बाधा नामकरण का उद्देश्य क्या है :

mysql> insert into Persons (P_Id) values(1);
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> insert into Persons (P_Id) values(1);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एंटिटी फ्रेमवर्क नेस्टेड SQL क्वेरीज़ क्यों उत्पन्न करता है?

  2. GUI का उपयोग करके MySQL कार्यक्षेत्र में सर्वर स्थिति की जाँच कैसे करें

  3. गलत पूर्णांक मान:''पंक्ति 1 पर कॉलम 'आईडी' के लिए''

  4. mysql:बिना क्रम के बाएं जॉइन के बाद ऑर्डर को कैसे सहेजना है?

  5. तालिका को INSERT के लक्ष्य के रूप में और डेटा के अलग स्रोत के रूप में दो बार निर्दिष्ट किया गया है