Mysql 更新结果低于零时sql更新抛出错误
当更新结果低于零时,如何使SQL更新抛出错误 我试过的是Mysql 更新结果低于零时sql更新抛出错误,mysql,database,sql-update,Mysql,Database,Sql Update,当更新结果低于零时,如何使SQL更新抛出错误 我试过的是 UPDATE round_table SET table_seat = table_seat - number WHERE table_name = data; 将属性更改为无符号值 ================================== 它仍然在零以下执行或不期望数字,但不会抛出任何错误 有时它会执行,但没有受影响的行,这不是我所期望的 ================================== 当数据更新后低
UPDATE round_table SET table_seat = table_seat - number WHERE table_name = data;
将属性更改为无符号值
==================================
它仍然在零以下执行或不期望数字,但不会抛出任何错误
有时它会执行,但没有受影响的行,这不是我所期望的
==================================
当数据更新后低于0时,我是否可以让SQL抛出错误。如果您使用php,可以检查mysqli的代码
<?php
if ($mysqli->affected_rows ==0)
throw new Exception('The Result is 0 Now');
单向
UPDATE round_table SET table_seat = table_seat - number WHERE table_name = data
And table_seat >= number
如果没有任何行受到影响,则可能是表格名称不存在(这似乎是您的其他问题之一),或者表格座位已变为<0。您想要哪个。table_seat不允许为负数,或者要检测具有负数的行吗?table_seat不允许与其他DBMS一起使用时,您只需创建一个检查约束……我更改了table约束,但似乎没有任何效果。您有任何示例吗?我使用了mysqli->multi_query,因此会有一些行受影响,而有些行不受影响。因此,在这种情况下,这种方法不起作用。我想Tony想检查table_seat-number
的结果是否低于零,而不是受影响的行数。我已经告诉过你,我已经尝试过这个问题,但是谢谢你,现在我明白你的意思了。这会有帮助吗。
UPDATE round_table SET table_seat = table_seat - number WHERE table_name = data
And table_seat >= number