INSERT INTO TABLE
SELECT value_for_column1, value_for_column2, ...
FROM wherever
WHERE your_special_condition
Nếu không có hàng nào được trả về từ vùng chọn (vì điều kiện đặc biệt của bạn là sai) thì không có chèn nào xảy ra.
Sử dụng lược đồ của bạn từ câu hỏi (giả sử id
của bạn cột là auto_increment
):
insert into orders (product_id, qty)
select 2, 20
where (SELECT qty_on_hand FROM products WHERE id = 2) > 20;
Thao tác này sẽ không chèn hàng nếu không có đủ hàng trong tay, nếu không, nó sẽ tạo ra hàng đơn đặt hàng.
Ý kiến hay đấy btw!