更新数据库表

时间:2016-08-06 14:05:30

标签: mysql sql database

我有一个包含此表的数据库: Table

该表由3列组成: -id:标识表的每一行 -address:保留所有地址 -default:一个布尔列,其中1定义用户使用的默认地址

在上图中,使用的默认地址为address1

我想添加第四个地址并将第四个地址设置为默认值。所以我写了以下几行:

-UPDATE address SET default=false
-INSERT INTO addresses SET address = `address4`, default=true

我想知道的是,有没有办法将两条线组合起来以提高性能? 或者使用2行可以吗?

提前感谢您提供帮助

1 个答案:

答案 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功能)。