MySQL-এ SQL Server-এর SELECT INTO সিনট্যাক্স নেই। এর সমতুল্য হল CREATE TABLE ... AS SELECT (CTAS) স্টেটমেন্ট। এটি ক্যোয়ারি ফলাফল থেকে নতুন টেবিল তৈরি করে।
সিনট্যাক্স
CREATE TABLE new_table_name AS
SELECT * FROM existing_table_name;
উদাহরণ
CREATE TABLE select_into_demo (
client_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
client_name VARCHAR(20),
client_age INT
);
INSERT INTO select_into_demo (client_name, client_age) VALUES
('Larry', 34), ('Maxwell', 44), ('Bob', 38), ('David', 39);
নতুন টেবিল তৈরি (CTAS)
CREATE TABLE client_information AS
SELECT * FROM select_into_demo;
ফলাফল যাচাই
SELECT * FROM client_information;
+-----------+-------------+-----------+
| client_id | client_name | client_age|
+-----------+-------------+-----------+
| 1 | Larry | 34 |
| 2 | Maxwell | 44 |
| 3 | Bob | 38 |
| 4 | David | 39 |
+-----------+-------------+-----------+
উন্নত ব্যবহার
নির্দিষ্ট কলাম ও শর্তসাপেক্ষ কপি
CREATE TABLE young_clients AS
SELECT client_id, client_name, client_age
FROM select_into_demo
WHERE client_age < 40;
কলাম রিনেম ও এক্সপ্রেশন
CREATE TABLE client_summary AS
SELECT client_id AS id,
UPPER(client_name) AS name,
client_age AS age,
CASE WHEN client_age >= 40 THEN 'Senior' ELSE 'Junior' END AS category
FROM select_into_demo;
ইনডেক্স ও PRIMARY KEY সংরক্ষণ (MySQL 8.0.19+)
CREATE TABLE client_copy (
PRIMARY KEY (client_id),
INDEX idx_name (client_name)
) AS SELECT * FROM select_into_demo;
দ্রষ্টব্য
- CTAS FOREIGN KEY, TRIGGER, PARTITION কপি করে না
AUTO_INCREMENTমান কপি হয়, কিন্তু পরবর্তী ইনসার্টের জন্য রিসেট হতে পারে- বড় টেবিলের জন্য
CREATE TABLE ... LIKE+INSERT ... SELECTদ্রুত হতে পারে
ব্যাকআপ/আর্কাইভের জন্য প্যাটার্ন
CREATE TABLE orders_archive_2024 AS
SELECT * FROM orders
WHERE order_date < '2024-01-01';