1
57
Here is one hack 这可能奏效。它不干净,但看起来可能有用: 实际上,您只需尝试更新不存在的列。 |
2
128
从MySQL5.5开始,您可以使用
状态45000是表示“未处理的用户定义异常”的一般状态。 下面是一个更完整的方法示例:
|
3
30
不幸的是,@ruidc提供的答案在5.5之前的MySQL版本中不起作用,因为没有实现 信号 用于存储过程。
我的解决方案
found
是模拟一个信号
黑客可以使用触发器或存储过程来实现。我按照@ruidc使用的示例描述下面的两个选项。 使用触发器
使用存储过程存储过程允许您使用动态SQL,这使得在一个过程中封装错误生成功能成为可能。相反,我们应该控制应用程序的插入/更新方法,因此它们只使用我们的存储过程(不授予插入/更新的直接特权)。
|
4
11
以下过程(在mysql5上)是抛出自定义错误并同时记录它们的一种方法:
|
5
6
|
6
4
另一种(黑客)方法(如果您出于某种原因不在5.5+上),您可以使用: 如果您有一个必需的字段,那么在触发器内,将必需的字段设置为一个无效的值,如NULL。这对插入和更新都有效。请注意,如果空值是必需字段的有效值(出于某种疯狂的原因),则此方法将不起作用。
如果您在5.5+上,则可以使用其他答案中描述的信号状态:
|
hello_programmers · Mysql从其他表输出一列 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
Kugelfisch · 用php为数据库加密数据 1 年前 |