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

แสดงโครงสร้างคอลัมน์ของ Temporary Table ใน MySQL ด้วย SHOW COLUMNS

การดูโครงสร้างคอลัมน์ของ Temporary Table

Temporary Table ใน MySQL ใช้ได้เฉพาะ Session ปัจจุบัน สามารถตรวจสอบโครงสร้างได้ด้วย SHOW COLUMNS หรือ DESCRIBE เหมือนตารางปกติ

Syntax

SHOW COLUMNS FROM temp_table_name;
-- หรือ
DESC temp_table_name;

ตัวอย่าง: สร้าง Temporary Table และแสดงโครงสร้าง

mysql> CREATE TEMPORARY TABLE DemoTable745 (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(100),
    StudentAge INT,
    StudentAddress VARCHAR(100),
    StudentCountryName VARCHAR(20)
);
Query OK, 0 rows affected (0.00 sec)

แสดงโครงสร้างคอลัมน์:

mysql> SHOW COLUMNS FROM DemoTable745;
+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| StudentId          | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentName        | varchar(100) | YES  |     | NULL    | NULL           |
| StudentAge         | int(11)      | YES  |     | NULL    | NULL           |
| StudentAddress     | varchar(100) | YES  |     | NULL    | NULL           |
| StudentCountryName | varchar(20)  | YES  |     | NULL    | NULL           |
+--------------------+--------------+------+-----+---------+----------------+
5 rows in set (0.05 sec)

คุณสมบัติ Temporary Table

  • มองเห็นได้ **เฉพาะ Session ที่สร้าง** (Connection อื่นไม่เห็น)
  • ถูกลบอัตโนมัติเมื่อ **Session จบ (Disconnect)**
  • ชื่อสามารถซ้ำกับ Regular Table ได้ (อยู่ใน Namespace แยก)
  • ไม่สามารถอ้างอิงใน Trigger/Stored Procedure ได้ (บาง Version)
  • ไม่รองการ Replication (Statement-based)

คำสั่งที่เกี่ยวข้อง

  • SHOW CREATE TABLE DemoTable745; - ดู DDL Statement
  • SHOW TABLE STATUS LIKE 'DemoTable745'; - ดูข้อมูลเช่น Engine, Rows, Size
  • SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'DemoTable745' AND TABLE_SCHEMA = DATABASE();

กรณีใช้งานจริง

  • เก็บข้อมูลระหว่างคำนวณซับซ้อน (Intermediate Results)
  • แบ่ง Query ใหญ่เป็นขั้นตอนๆ
  • Staging Data ก่อน Insert ลง Production Table
  • Session-specific Data (Shopping Cart, Temp Calculations)