การสร้างตารางจาก View
ใช้ CREATE TABLE new_table SELECT * FROM view_name คัดลอกโครงสร้างและข้อมูลจาก View
ตัวอย่าง
mysql> create table DemoTable830(Name varchar(100));
Query OK, 0 rows affected (0.91 sec)
mysql> insert into DemoTable830 values('Chris');
mysql> insert into DemoTable830 values('Robert');
mysql> insert into DemoTable830 values('David');
mysql> insert into DemoTable830 values('Mike');
สร้าง View
mysql> create view table_view AS select * from DemoTable830;
Query OK, 0 rows affected (0.39 sec)
สร้างตารางใหม่จาก View
mysql> create table DemoTable831 select * from table_view;
Query OK, 4 rows affected (1.64 sec)
ตรวจสอบข้อมูล
mysql> select * from DemoTable831;
+--------+
| Name |
+--------+
| Chris |
| Robert |
| David |
| Mike |
+--------+
ข้อควรทราบ
- คัดลอกข้อมูลและโครงสร้างพื้นฐาน (Column names, Types)
- ไม่คัดลอก: Indexes, Primary Keys, Foreign Keys, Triggers, Auto_Increment, Default Values, Comments
- ตารางใหม่เป็น Base Table แยกต่างหาก (ไม่ผูกกับ View)
การใช้งานจริง
-- สร้าง Backup Table
CREATE TABLE backup_users SELECT * FROM users;
-- สร้างตารางสรุปจาก View ที่ซับซ้อน
CREATE TABLE monthly_sales_summary SELECT * FROM v_monthly_sales;
-- คัดลอกเฉพาะบางคอลัมน์
CREATE TABLE t2 SELECT id, name FROM t1;
สรุป
ใช้ CREATE TABLE new_table SELECT * FROM view_name สร้างตารางใหม่จาก View ได้เร็ว แต่ต้องเพิ่ม Index/Constraint เองหลังสร้าง