Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tạo bảng nếu chưa tồn tại rồi INSERT trong MySQL (CREATE TABLE IF NOT EXISTS)


Giới thiệu

Cú pháp CREATE TABLE IF NOT EXISTS cho phép tạo bảng chỉ khi chưa tồn tại, tránh lỗi "Table already exists". Kết hợp với INSERT an toàn cho script chạy nhiều lần.

Cú pháp

CREATE TABLE IF NOT EXISTS your_table (
    col1 type, col2 type, ...
);
INSERT INTO your_table VALUES (...);

Ví dụ minh họa

Tạo bảng nếu chưa có

mysql> CREATE TABLE IF NOT EXISTS DemoTable (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentSubject VARCHAR(100)
);
Query OK, 0 rows affected (0.60 sec)  -- 0 rows affected = bảng đã tồn tại hoặc vừa tạo

Chèn dữ liệu

mysql> INSERT INTO DemoTable (StudentSubject) VALUES 
('Java'), ('MySQL'), ('C');

Xem dữ liệu

mysql> SELECT * FROM DemoTable;
+-----------+----------------+
| StudentId | StudentSubject |
+-----------+----------------+
| 1         | Java           |
| 2         | MySQL          |
| 3         | C              |
+-----------+----------------+

Lưu ý

  • IF NOT EXISTS chỉ kiểm tra **tên bảng**, không kiểm tra **cấu trúc**. Nếu bảng tồn tại nhưng cấu trúc khác, INSERT có thể lỗi.
  • Để an toàn hoàn toàn, dùng migration tool (Flyway, Liquibase) hoặc kiểm tra schema trước.
  • Kết hợp INSERT IGNORE hoặc ON DUPLICATE KEY UPDATE nếu muốn tránh trùng khóa chính.

Mở rộng: CREATE OR REPLACE (chỉ cho VIEW)

CREATE OR REPLACE VIEW my_view AS SELECT ...;

Không áp dụng cho TABLE (MySQL không hỗ trợ CREATE OR REPLACE TABLE).