MySQL में SELECT INTO के बजाय CREATE TABLE AS SELECT उपयोग करें
MySQL, SQL Server के SELECT INTO सिंटैक्स का समर्थन नहीं करता। इसके बजाय CREATE TABLE ... AS SELECT (CTAS) का उपयोग करें।
सिंटैक्स
CREATE TABLE new_table_name AS SELECT * FROM existing_table_name;
उदाहरण
CREATE TABLE selectIntoEquivalentDemo (
ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName VARCHAR(20),
ClientAge INT
);
INSERT INTO selectIntoEquivalentDemo (ClientName, ClientAge) VALUES
('Larry', 34), ('Maxwell', 44), ('Bob', 38), ('David', 39);
नई टेबल बनाना (डेटा सहित कॉपी)
CREATE TABLE Client_information AS SELECT * FROM selectIntoEquivalentDemo;
परिणाम
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 1 | Larry | 34 | | 2 | Maxwell | 44 | | 3 | Bob | 38 | | 4 | David | 39 | +----------+------------+-----------+
महत्वपूर्ण सीमाएं
- इंडेक्स/कंस्ट्रेंट कॉपी नहीं होते: केवल कॉलम परिभाषाएं और डेटा कॉपी होते हैं। प्राइमरी की, विदेशी कुंजी, इंडेक्स, AUTO_INCREMENT आदि मैन्युअली जोड़ने पड़ते हैं।
- केवल स्ट्रक्चर कॉपी करने के लिए:
CREATE TABLE new_tbl LIKE old_tbl;उपयोग करें (डेटा नहीं कॉपी होता)। - विशिष्ट कॉलम चुनने के लिए:
CREATE TABLE new_tbl AS SELECT col1, col2 FROM old_tbl;
इंडेक्स जोड़ने का उदाहरण
CREATE TABLE Client_information AS SELECT * FROM selectIntoEquivalentDemo; ALTER TABLE Client_information ADD PRIMARY KEY (ClientId);