插入语句和更新语句包

时间:2016-03-11 20:25:13

标签: stored-procedures relational-database

在我们的系统中,一些存储过程将insert语句和update语句捆绑在一起。它们首先执行insert语句。如果执行后唯一字段存在重复错误,则它们将执行更新语句。它们被设计用于不知道数据是否在我们的数据库中的情况。

以下是此类查询的结构

mysql> SELECT '88888822222' RLIKE '0{4}|1{4}|2{4}|3{4}|4{4}|5{4}|6{4}|7{4}|8{4}|9{4}';
+-------------------------------------------------------------------------+
| '88888822222' RLIKE '0{4}|1{4}|2{4}|3{4}|4{4}|5{4}|6{4}|7{4}|8{4}|9{4}' |
+-------------------------------------------------------------------------+
|                                                                       1 |
+-------------------------------------------------------------------------+

在某种情况下,我只需要更新表的一个字段。当然,我可以使用这样的存储过程。但是,我想知道是否只是为了更新数据而创建一个新的更新查询,而不是在良好实践方面。

任何输入?

1 个答案:

答案 0 :(得分:0)

如果我理解你所说的话,那么如果insert语句返回错误,那么你正在调用update语句?

如果是这样,那么您可以使用EXISTS来检查您要更新的字段是否在更新之前在数据库中。

https://msdn.microsoft.com/en-us/library/ms188336.aspx