更新数据库表

王子

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

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

在上面的图像中,使用的默认地址是 address1

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

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

我想知道的是,有什么办法可以将这两条线结合起来以提高性能吗?还是使用2行就可以了?

在此先感谢您的帮助

戈登·利诺夫(Gordon Linoff)

您不能将它们合并为一个语句。但是,您可以将它们合并为一个事务,这样它们就可以同时生效。

您可以使用进行操作start transaction,这在此处进行了说明

另外,我建议您撤消操作:

INSERT INTO addresses
    SET address = $address4,
        default = false;

UPDATE address
    SET default = (case when address = $address4" then true else false end);

这看起来更加复杂。但是,如果您不使用事务,请确保始终为查询该表的其他进程设置默认地址(假设存储引擎具有某些ACID功能)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章