gpt4 book ai didi

mysql - Upsert - 如果存在则更新,否则插入 MySQL

转载 作者:行者123 更新时间:2023-11-29 05:34:12 29 4
gpt4 key购买 nike

我正在寻找一个简单的更新插入(更新/插入)。表格看起来像这样

+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| email | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+

这里没有 key 。这个想法是如果电子邮件不同则插入,否则更新。 Insert on duplicate key在 mysql 中不适合这个目的。

有没有一种优雅的方式来做到这一点?

最佳答案

如果您不能在电子邮件列上添加唯一键,您将首先检查记录是否存在(最好在交易中):

SELECT id FROM mytable WHERE email = 'my@example.com' FOR UPDATE

如果存在则更新记录:

UPDATE mytable SET name = 'my name' WHERE id = ?

否则插入:

INSERT INTO mytable (name, email) VALUES ('my name', 'my@example.com')

关于mysql - Upsert - 如果存在则更新,否则插入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12146393/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com