通常,只有在滿足某些條件時,您可能才需要將資料插入表中。雖然預存程序提供了實現此目的的方法,但讓我們探討如何直接在 SQL 查詢中執行條件插入。
要有條件插入數據,您可以使用以下語法:
INSERT INTO TABLE SELECT value_for_column1, value_for_column2, ... FROM wherever WHERE your_special_condition
如果WHERE 子句中的子查詢由於不滿足條件而沒有返回任何行,則不會發生插入。
範例:
考慮下表:
CREATE TABLE products (id INT PRIMARY KEY AUTO_INCREMENT, qty_on_hand INT); CREATE TABLE orders (id INT PRIMARY KEY AUTO_INCREMENT, product_id INT, qty INT);
要訂購 20 個巫毒娃娃(產品 ID 2),我們可以檢查手頭是否有足夠的庫存,並有條件地插入訂單,如下所示:
INSERT INTO orders (product_id, qty) SELECT 2, 20 WHERE (SELECT qty_on_hand FROM products WHERE id = 2) > 20;
如果數量手數充足,將創建訂單行;否則,插入將不會發生。此方法透過檢查庫存可用性並在單一事務中執行插入來幫助緩解並發問題。
以上是如何根據特定條件有條件地將資料插入MySQL表中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!