我不知道 MySQL(或任何数据库)是否可以做到这一点,但我假设它可以做到。
我有一张桌子,有多个字段。其中一个字段跟踪可用“项目”的总数,另一个字段保存当前正在使用的项目数量。
是否可以在 UPDATE 语句中验证传入数据,这样如果正在使用的项目数大于可用的总数,则 UPDATE 将失败?IE 我可以根据另一个字段的内容向一个字段添加数字限制吗?
我不知道 MySQL(或任何数据库)是否可以做到这一点,但我假设它可以做到。
我有一张桌子,有多个字段。其中一个字段跟踪可用“项目”的总数,另一个字段保存当前正在使用的项目数量。
是否可以在 UPDATE 语句中验证传入数据,这样如果正在使用的项目数大于可用的总数,则 UPDATE 将失败?IE 我可以根据另一个字段的内容向一个字段添加数字限制吗?
假设您有几张桌子:
Items
------------
ItemID
NumAvailable
-------------
Checkout
-----------
UserID
ItemID
-----------
您可以创建一个触发器,对特定项目的 进行求和ItemID
并与 进行比较。NumAvailable
它看起来像这样(可能有错误,只提出一般想法:)。从这里收集的错误方法,可能有更好的方法可用):
CREATE TRIGGER check_available
BEFORE INSERT ON Checkout
FOR EACH ROW
BEGIN
SELECT IF (COUNT(new.ItemID) > Items.NumAvailable) THEN
DECLARE dummy INT;
SELECT 'No more items to check out!' INTO dummy
FROM new NATURAL JOIN Items WHERE NEW.ItemID = Items.ItemID
END IF;
END
update tableName set useItemColumnName= case when totalItemColumnName>=amount then amount else useItemColumnName end .
注意:amount
是您的可更新变量。可能是1、2、3...