MySQL में एकल INSERT स्टेटमेंट में एकाधिक मान डालना
आप एक ही INSERT स्टेटमेंट में कॉमा से अलग करके एकाधिक मान डाल सकते हैं।
सिंटैक्स
INSERT INTO yourTableName(yourColumnName) VALUES
('value1'), ('value2'), ('value3'), ...;
उदाहरण
टेबल बनाएं:
mysql> create table InsertMultipleDemo (
-> Id int NOT NULL AUTO_INCREMENT,
-> UserName varchar(10),
-> UserRole varchar(20),
-> PRIMARY KEY(Id)
-> );
एकल कॉलम (UserRole) में एकाधिक मान डालें:
mysql> insert into InsertMultipleDemo(UserRole) values
-> ('Admin'), ('Author'), ('Driver'), ('Guest');
आउटपुट: Query OK, 4 rows affected
परिणाम देखें:
mysql> select UserRole from InsertMultipleDemo;
+----------+ | UserRole | +----------+ | Admin | | Author | | Driver | | Guest | +----------+
लाभ
- प्रदर्शन: एकाधिक अलग INSERT से तेज़ (कम नेटवर्क राउंड-ट्रिप)
- परमाणुता: सभी या कोई नहीं (ट्रांजैक्शन में)
- संक्षिप्त: कम कोड
सीमाएं
max_allowed_packetसे बड़ा स्टेटमेंट नहीं हो सकता- बहुत बड़ी संख्या में पंक्तियों के लिए बैच में विभाजित करें (जैसे 1000 प्रति बैच)
AUTO_INCREMENTकॉलम स्वचालित भरे जाते हैं
कई कॉलम के लिए
INSERT INTO table (col1, col2) VALUES
('a', 1), ('b', 2), ('c', 3);