gpt4 book ai didi

mysql - 如果键已经存在,则不要插入记录

转载 作者:行者123 更新时间:2023-11-29 04:07:50 25 4
gpt4 key购买 nike

我是mysql的新手。请帮忙。我有一张这样的 table 。 people唯一的主键是id

id  name  age sex

1. John 16 M

2. Peter 18 K

我想写一些 sql 来向人们插入一些行。但是如果名字已经存在在表中。我不插入新行。例如,如果我插入名为 John 的行并且彼得。我不插入行。我有一个变量名为 var_name;

我在网上搜索了很长时间。我使用以下网络推荐的sql

INSERT into People(name) values(var_name) where not exists(SELECT name from People
where name = var_name)

但是sql语法错误出来了。为什么会这样。有什么方法可以快速实现我的目标。

最佳答案

最好的方法是在名称上创建一个唯一索引:

create unique idx_people_name on people(name)

然后,当你插入时,使用on duplicate key update:

INSERT into People(name)
values(var_name)
on duplicate key update name = values(name);

update 部分什么都不做——它是一个“空操作”。但这会将逻辑放入数据库并强制要求名称必须是唯一的。

要使您的查询正常工作,您需要 insert 。 . .选择values 子句不采用 where 语句:

INSERT into People(name) 
select var_name
from dual
where not exists(SELECT name from People where name = var_name);

关于mysql - 如果键已经存在,则不要插入记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24635601/

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