MySQL में AUTO_INCREMENT प्राइमरी की वाली टेबल में INSERT INTO ... SELECT का उपयोग करते समय, आप स्पष्ट रूप से ID मान प्रदान कर सकते हैं या ऑटो-जनरेट होने दे सकते हैं। दोनों दृष्टिकोण वैध हैं लेकिन अलग व्यवहार करते हैं।
उदाहरण: स्पष्ट ID के साथ INSERT INTO SELECT
ऑटो-इन्क्रीमेंट टेबल बनाएं:
mysql> CREATE TABLE DemoTable1923 (
UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserName VARCHAR(20)
);
SELECT में स्पष्ट ID मान प्रदान करके इन्सर्ट करें:
mysql> INSERT INTO DemoTable1923 (UserId, UserName) SELECT 101 AS UserId, 'Chris' AS UserName; mysql> INSERT INTO DemoTable1923 (UserId, UserName) SELECT 102 AS UserId, 'Robert' AS UserName; mysql> INSERT INTO DemoTable1923 (UserId, UserName) SELECT 103 AS UserId, 'Sam' AS UserName;
परिणाम (स्पष्ट ID उपयोग किए गए):
+--------+----------+ | UserId | UserName | +--------+----------+ | 101 | Chris | | 102 | Robert | | 103 | Sam | +--------+----------+
महत्वपूर्ण व्यवहार
- स्पष्ट ID: यदि आप
INSERT INTO ... SELECTमें ID कॉलम निर्दिष्ट करते हैं, तो दिए गए मान उपयोग होते हैं - ऑटो-जनरेट: यदि ID कॉलम छोड़ देते हैं, तो ऑटो-इन्क्रीमेंट अनुक्रम जारी रहता है
- डुप्लिकेट की: मौजूदा ID इन्सर्ट करने से डुप्लिकेट की एरर होगा
- अनुक्रम प्रभाव: स्पष्ट उच्च ID इन्सर्ट करने से अगला ऑटो-इन्क्रीमेंट मान प्रभावित होता है
ऑटो-जनरेट ID के साथ इन्सर्ट
-- केवल UserName प्रदान करें, UserId ऑटो-जनरेट होगा INSERT INTO DemoTable1923 (UserName) SELECT 'NewUser' FROM DUAL; -- या किसी टेबल से -- या दूसरे टेबल से कॉपी करें (ID छोड़कर) INSERT INTO DemoTable1923 (UserName) SELECT ClientName FROM DemoTable1900;
अन्य टेबल से डेटा कॉपी करना (ID ऑटो-जनरेट)
INSERT INTO DemoTable1923 (UserName) SELECT ClientName FROM DemoTable1900;
यह नए अनुक्रमिक ID (1, 2, 3... या वर्तमान अनुक्रम से) जनरेट करेगा।
ऑटो-इन्क्रीमेंट रीसेट/सेट करना
-- अगला ऑटो-इन्क्रीमेंट मान सेट करें ALTER TABLE DemoTable1923 AUTO_INCREMENT = 1000;
बेस्ट प्रैक्टिस
- माइग्रेशन: डेटा माइग्रेट करते समय मूल ID बनाए रखने के लिए स्पष्ट ID उपयोग करें
- नया डेटा: नए रिकॉर्ड्स के लिए ऑटो-जनरेट होने दें
- टकराव बचाएं: स्पष्ट ID डालने से पहले
MAX(id)जांचें
स्पष्ट ID नियंत्रण रेफरेंशियल इंटीग्रिटी बनाए रखने के लिए माइग्रेशन में महत्वपूर्ण है।