【发布时间】:2014-02-09 20:31:42
【问题描述】:
我有一个简单的 INSERT 查询,它在单击按钮的事件时运行,它获取变量并将它们插入到 order 表中。
我还想更新我的bands 表以将库存减少 1 直到它达到 0 然后显示空值或售罄而不是变成负数,例如:-6
要知道我可以使用哪个乐队:
WHERE Band_id = $Band_id");
在同一个语句中。
当前的 INSERT 看起来像:
"INSERT INTO orders (band_id,user_id,user_name,band_name,band_venue) VALUES('$Band_id', '$user_id', '$user_name', '$name', '$venue')";
结论
需要将我的 INSERT 更改为 UPDATE WHILE 检查其当前选择的波段。
答案提供检查
这个解决方案提供得非常好,它很有意义,但我不够熟练,无法理解为什么它不能正常运行。
$sql = "INSERT INTO orders (band_id,user_id,user_name,band_name,band_venue) VALUES('$Band_id', '$user_id', '$user_name', '$name', '$venue')";
$sql_create ="CREATE TRIGGER tg_ai_orders
AFTER INSERT ON orders
FOR EACH ROW
UPDATE bands
SET stock = stock - 1
WHERE band_id = NEW.band_id";
$sql_deleat = "CREATE TRIGGER tg_ad_orders
AFTER DELETE ON orders
FOR EACH ROW
UPDATE bands
SET stock = stock + 1
WHERE band_id = OLD.band_id";
mysql_query ($sql, $sql_deleat, $sql_create, $linkme)
or die ("could not add to database");
【问题讨论】:
-
您需要一个触发器来影响插入中的另一个表。
-
您可以使用两个单独的查询并将它们包装在一个事务中
-
好极了,我将如何使用触发器或将它们包装在事务中
标签: mysql database join insert sql-update