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

एक mysql तालिका auto_increment में एक आईडी बनाएं (तथ्य के बाद)

उदाहरण के लिए, यहां एक तालिका है जिसमें प्राथमिक कुंजी है लेकिन AUTO_INCREMENT नहीं है :

mysql> CREATE TABLE foo (
  id INT NOT NULL,
  PRIMARY KEY (id)
);
mysql> INSERT INTO foo VALUES (1), (2), (5);

आप MODIFY कर सकते हैं AUTO_INCREMENT . के साथ इसे फिर से परिभाषित करने के लिए कॉलम विकल्प:

mysql> ALTER TABLE foo MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT;

सत्यापित करें कि यह प्रभावी हो गया है:

mysql> SHOW CREATE TABLE foo;

आउटपुट:

CREATE TABLE foo (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1

ध्यान दें कि आपने दूसरे कॉलम को बनाने और मूल कॉलम को छोड़ने की आवश्यकता के बिना कॉलम परिभाषा को जगह में संशोधित किया है। PRIMARY KEY बाधा अप्रभावित है, और आपको ALTER TABLE में उल्लेख करने की आवश्यकता नहीं है बयान।

इसके बाद आप परीक्षण कर सकते हैं कि एक इंसर्ट एक नया मान उत्पन्न करता है:

mysql> INSERT INTO foo () VALUES (); -- yes this is legal syntax
mysql> SELECT * FROM foo;

आउटपुट:

+----+
| id |
+----+
|  1 | 
|  2 | 
|  5 | 
|  6 | 
+----+
4 rows in set (0.00 sec)

मैंने मैक ओएस एक्स पर MySQL 5.0.51 पर इसका परीक्षण किया।

मैंने ENGINE=InnoDB . के साथ भी परीक्षण किया और एक आश्रित तालिका। id को संशोधित करना स्तंभ परिभाषा संदर्भात्मक अखंडता को बाधित नहीं करती है।

त्रुटि 150 का जवाब देने के लिए आपने अपनी टिप्पणी में उल्लेख किया है, यह शायद विदेशी कुंजी बाधाओं के साथ एक संघर्ष है। क्षमा करें, मैंने इसका परीक्षण करने के बाद सोचा कि यह काम करेगा। यहां कुछ लिंक दिए गए हैं जो समस्या का निदान करने में मदद कर सकते हैं:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CentOS7 में, MySQL प्रारंभ नहीं कर सकता

  2. MySQL में LIKE ऑपरेटर कैसे काम करता है

  3. डेटाबेस से html तालिका में डेटा प्रदर्शित करें

  4. मैं Magento में सभी प्रश्नों को कैसे प्रिंट करूं?

  5. चेतावनी:mysql_query ():आपूर्ति किया गया तर्क मान्य MySQL-Link संसाधन नहीं है