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

Kiểm tra bảng tồn tại và tạo nếu chưa có trong MySQL

Để 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 EXISTS chỉ 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 TABLE thêm cột thiếu (migration).