gpt4 book ai didi

mysql - 仅当记录不存在时插入表

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

仅当用户的电子邮件不存在时,我才尝试将用户插入用户表中。

CREATE TABLE `users` ( 
`ID` INT(8) NOT NULL AUTO_INCREMENT ,
`FIRSTNAME` VARCHAR(150) NOT NULL ,
`LASTNAME` VARCHAR(150) NOT NULL ,
`EMAIL` VARCHAR(150) NOT NULL ,
`PASSWORD` VARCHAR(150) NOT NULL ,
PRIMARY KEY (`ID`(8)),
UNIQUE (`EMAIL`)
) ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_bin;

我正在运行这个查询:

SET @P1 = 'john';
SET @P2 = 'smith';
SET @P3 = 'whatever@example.com';
SET @P4 = 'password';

我有 USERS_INSERT_NEW 是一个存储过程,它只是插入到 users 表中

SELECT IF ( NOT EXISTS ( SELECT `ID` FROM `users` WHERE `EMAIL` = 'whatever@example.com' ), CALL USERS_INSERT_NEW ( @P1, @P2, @P3, @P4 ) , NULL ) INSERTED

IF 语句的工作原理如下:IF(表达式,有效,无效)为什么我不能使用我的存储过程(如果它有效)?

最佳答案

更简单的方法是

INSERT INTO table_a
SELECT b.*
FROM table_b b
LEFT JOIN table_a a
ON a.ID = b.ID
WHERE a.ID IS NULL

http://sqlfiddle.com/#!2/792d4/2

关于mysql - 仅当记录不存在时插入表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45390918/

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