gpt4 book ai didi

php - 在插入 MySQL 数据库之前检查数据

转载 作者:行者123 更新时间:2023-11-29 01:41:43 24 4
gpt4 key购买 nike

我正在创建一个 SQL 脚本,它将在新环境中运行时将特定条目添加到数据库中。但我想在尝试插入数据之前必须通过 INSERT 查询确保数据不存在。

我提出的查询看起来很合理。但出于某种原因,它给了我一个语法错误。是的,我已经对它进行了 RTFM。我用谷歌搜索了一下。根据我见过的其他例子(甚至在 Stack Exchange 上),我觉得它很合适。谁能确定我做错了什么?

查询:

INSERT INTO my_model (status, name) VALUES ('active', 'bbc')
WHERE NOT EXISTS (SELECT name FROM my_model WHERE name = 'bbc')

有什么想法吗?

最佳答案

普通 INSERT 不允许 WHERE。如果主键是 (status, name) 然后使用 INSERT IGNORE 因为 @aynber 存在。如果没有,请尝试 INSERT ... SELECT:

INSERT INTO my_model (status, name)
SELECT 'active', 'bbc'
FROM DUAL
WHERE NOT EXISTS (SELECT name FROM my_model WHERE name = 'bbc');

DUAL 是系统提供的单行表,用于保证像 SELECT 'active', 'bbc' FROM DUAL 这样的结果只有一行。这是 Oracle 的“发明”,但在 MySQL 中得到支持。您可以从查询中删除 FROM DUAL;我今天没有 MySQL,所以我无法对其进行测试。

关于php - 在插入 MySQL 数据库之前检查数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19385083/

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