Để tạo bảng chỉ khi chưa tồn tại (tránh lỗi), dùng CREATE TABLE IF NOT EXISTS.
Ví dụ minh họa
Thử tạo bảng đã tồn tại (DemoTable):
CREATE TABLE IF NOT EXISTS DemoTable (
CustomerId INT,
CustomerName VARCHAR(30),
CustomerAge INT
);
Kết quả: Query OK, 0 rows affected, 1 warning.
Xem warning:
SHOW WARNINGS;
+-------+------+------------------------------------+ | Level | Code | Message | +-------+------+------------------------------------+ | Note | 1050 | Table 'demotable' already exists | +-------+------+------------------------------------+
Tạo bảng mới (DemoTable2) không tồn tại:
CREATE TABLE IF NOT EXISTS DemoTable2 (
CustomerId INT,
CustomerName VARCHAR(20),
CustomerAge INT
);
Kết quả: Query OK, 0 rows affected (tạo thành công, không warning).
Chèn và kiểm tra:
INSERT INTO DemoTable2 VALUES (101, 'Chris', 23), (102, 'Robert', 24); SELECT * FROM DemoTable2;
+------------+--------------+-------------+ | CustomerId | CustomerName | CustomerAge | +------------+--------------+-------------+ | 101 | Chris | 23 | | 102 | Robert | 24 | +------------+--------------+-------------+
Lưu ý:
IF NOT EXISTSchỉ kiểm tra tên bảng, **không kiểm tra cấu trúc cột**. Nếu bảng tồn tại nhưng cấu trúc khác, lệnh vẫn thành công (warning) nhưng không thay đổi schema.- Để kiểm tra cấu trúc, truy vấn
INFORMATION_SCHEMA.COLUMNS. - Trong ứng dụng, pattern phổ biến:
CREATE TABLE IF NOT EXISTS→ALTER TABLEthêm cột thiếu (migration).