该表由3列组成:
-id:标识表的每一行
-address:保留所有地址
-default:一个布尔列,其中1
定义用户使用的默认地址
在上图中,使用的默认地址为address1
我想添加第四个地址并将第四个地址设置为默认值。所以我写了以下几行:
-UPDATE address SET default=false
-INSERT INTO addresses SET address = `address4`, default=true
我想知道的是,有没有办法将两条线组合起来以提高性能? 或者使用2行可以吗?
提前感谢您提供帮助
答案 0 :(得分:3)
您无法将它们合并为一个语句。但是,您可以将它们组合成单个事务,以便它们同时生效。
您使用start transaction
执行此操作,该文档记录为view output。
另外,我建议您撤消操作:
INSERT INTO addresses
SET address = $address4,
default = false;
UPDATE address
SET default = (case when address = $address4" then true else false end);
这看起来更复杂。但是,如果您不使用事务,则确保始终为查询表的其他进程设置默认地址(假设存储引擎具有一些ACID功能)。