Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

MySQL: สร้างตารางจาก View (CREATE TABLE ... SELECT)

การสร้างตารางจาก 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 เองหลังสร้าง