在我们的系统中,一些存储过程将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 |
+-------------------------------------------------------------------------+
在某种情况下,我只需要更新表的一个字段。当然,我可以使用这样的存储过程。但是,我想知道是否只是为了更新数据而创建一个新的更新查询,而不是在良好实践方面。
任何输入?
答案 0 :(得分:0)
如果我理解你所说的话,那么如果insert语句返回错误,那么你正在调用update语句?
如果是这样,那么您可以使用EXISTS来检查您要更新的字段是否在更新之前在数据库中。