Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में AUTO_INCREMENT टेबल में INSERT INTO SELECT कैसे करें?

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 नियंत्रण रेफरेंशियल इंटीग्रिटी बनाए रखने के लिए माइग्रेशन में महत्वपूर्ण है।

  1. Java का उपयोग करके MySQL टेबल में रिकॉर्ड डालें Java का उपयोग करके MySQL टेबल में रिकॉर्ड डालें

    JDBC Statement या PreparedStatement का उपयोग करके Java एप्लिकेशन से MySQL में रिकॉर्ड डालें। टेबल बनाना CREATE TABLE DemoTable( Id INT, Name VARCHAR(30), CountryName VARCHAR(30), Age INT ); Query OK, 0 rows affected (0.66 sec) Java कोड (Statement) 0) { System.out.

  1. Java के साथ MySQL टेबल में केवल एक कॉलम कैसे इन्सर्ट करें? Java के साथ MySQL टेबल में केवल एक कॉलम कैसे इन्सर्ट करें?

    Java-MySQL कनेक्शन कोड में एक कॉलम इन्सर्ट करने के लिए INSERT INTO स्टेटमेंट का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Name varchar(20) -> ); Query OK, 0 rows affected (0.54 sec) MySQL टेबल में केवल एक कॉलम इन्सर्ट करने का जावा कोड यहाँ है। उदाहरण

  1. - MySQL में LPAD और INSERT INTO SELECT का उपयोग करके अग्रणी शून्य के साथ मान डालें

    MySQL में अग्रणी शून्य के साथ क्रमिक ID उत्पन्न करना LPAD() फ़ंक्शन और INSERT INTO SELECT का उपयोग करके आप एक कॉलम में अग्रणी शून्य के साथ स्वरूपित मान (जैसे 001, 002, 003) स्वचालित रूप से उत्पन्न और डाल सकते हैं। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) LPAD के साथ INSERT INTO SELECT क