INSERT INTO TABLESELECt value_for_column1, value_for_column2, ...FROM whereverWHERe your_special_condition
如果选择未返回任何行(因为特殊条件为false),则不会发生插入。
使用问题中的架构(假设您的
id列为
auto_increment):
insert into orders (product_id, qty)select 2, 20where (SELECT qty_on_hand FROM products WHERe id = 2) > 20;
如果手头的库存不足,则不会插入任何行,否则将创建订单行。
好主意顺便说一句!



