Bạn có thể thực hiện chèn nếu bảng trống với sự trợ giúp của truy vấn con. Vì vậy, làm việc với điều kiện không tồn tại với truy vấn con.
Cú pháp dưới đây sẽ chỉ hoạt động khi bảng của bạn trống. Nếu bảng của bạn không trống thì nó sẽ không chèn bản ghi. Cú pháp như sau:
INSERT INTO yourTableName (yourColumnName) CHỌN ‘anyValue’WHERE KHÔNG TỒN TẠI (CHỌN * TỪ yourTableName);
Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau:
mysql> tạo bảng ExecuteInsertDemo -> (-> Tên varchar (20) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,67 giây)
Hãy để chúng tôi chèn bản ghi trong bảng bằng cách sử dụng lệnh chèn. Truy vấn để chèn bản ghi như sau:
mysql> chèn vào các giá trị ExecuteInsertDemo ('John'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,19 giây)
Giả sử bàn của chúng ta không trống. Nó chỉ có một bản ghi duy nhất. Nếu bạn thực hiện lệnh chèn thì MySQL sẽ không nhập bản ghi đó vào bảng.
Truy vấn để thực hiện chèn như sau:
mysql> insert vào ExecuteInsertDemo (Name) -> chọn 'Larry' -> ở nơi không tồn tại (chọn * từ ExecuteInsertDemo); Truy vấn OK, 0 hàng bị ảnh hưởng (0,00 giây) Bản ghi:0 Bản sao:0 Cảnh báo:0Hiển thị bản ghi bằng câu lệnh select. Truy vấn như sau:
mysql> select * từ ExecuteInsertDemo;Sau đây là kết quả:
+ ------ + | Tên | + ------ + | John | + ------ + 1 hàng trong bộ (0,00 giây)Bạn cần xóa bản ghi khỏi bảng để chạy truy vấn mà chúng ta đã thấy ở trên. Sử dụng lệnh truncate. Truy vấn như sau:
mysql> cắt ngắn bảng ExecuteInsertDemo; Truy vấn OK, 0 hàng bị ảnh hưởng (1.10 giây)Chạy truy vấn trên để thực hiện lệnh chèn. Truy vấn như sau:
mysql> insert vào ExecuteInsertDemo (Name) -> chọn 'Larry' -> ở nơi không tồn tại (chọn * từ ExecuteInsertDemo); Truy vấn OK, 1 hàng bị ảnh hưởng (0,33 giây) Bản ghi:1 Bản sao:0 Cảnh báo:0Hiển thị bản ghi từ bảng bằng lựa chọn. Truy vấn như sau:
mysql> select * từ ExecuteInsertDemo;Sau đây là kết quả:
+ ------- + | Tên | + ------- + | Larry | + ------- + 1 hàng trong bộ (0,00 giây)Nhìn vào kết quả đầu ra mẫu, 'Larry' đã được chèn thành công khi bảng trống.