Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 更新结果低于零时sql更新抛出错误_Mysql_Database_Sql Update - Fatal编程技术网

Mysql 更新结果低于零时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; 将属性更改为无符号值 ================================== 它仍然在零以下执行或不期望数字,但不会抛出任何错误 有时它会执行,但没有受影响的行,这不是我所期望的 ================================== 当数据更新后低

当更新结果低于零时,如何使SQL更新抛出错误

我试过的是

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