如果数据丢失,则停止执行查询

时间:2011-04-11 12:46:07

标签: mysql

假设我有以下数据库架构。

user_id (int) email (varchar) phone (varchar)

如果phone的值为空,如何停止执行insert查询。我可以用脚本验证来做到这一点,但我对mysql解决方案很感兴趣。

2 个答案:

答案 0 :(得分:0)

您可以编写一个过程并使用它来验证和插入行。或者您可以编写一个触发器来检查NEW值并抛出异常。要抛出异常,您可以在MySQL 5.5中使用SIGNAL语句,或者调用未知存储过程。

答案 1 :(得分:0)

对于完全在mysql中运行的解决方案,您可以使用“触发器”。这包括:

  1. 定义mysql存储过程以执行验证
  2. 创建触发器以使用验证程序,例如在INSERT
  3. 如果验证失败,可能会对错误消息执行某些操作。
  4. 有关完整示例,请查看Roland Bouman's blog