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 EXISTSchỉ 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 IGNOREhoặcON DUPLICATE KEY UPDATEnế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).