嗨,这可能是一个简单的问题。 但在尝试了多次放弃之后。
无法查看此查询的错误:
IF NOT EXISTS(SELECT email FROM gebr_tickets WHERE email ='test@test.nl' )
INSERT INTO gebr_tickets (name,gebr_name, password, email, RelatieID)
VALUES ('k','k','cmmNkftA','test@test.nl',170)
错误是:
[Err] 1064 - 您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在#< if NOT EXISTS附近使用正确的语法(SELECT email FROM gebr_tickets WHERE email =' test@test.nl')INSERT INTO'
答案 0 :(得分:1)
您可以尝试以下代码来忽略重复记录
INSERT IGNORE INTO gebr_tickets (name,gebr_name, password, email, RelatieID)
VALUES ('k','k','cmmNkftA','test@test.nl',170);
答案 1 :(得分:0)
最简单的方法是
INSERT INTO gebr_tickets (NAME,gebr_name, PASSWORD, email, RelatieID)
SELECT 'k','k','cmmNkftA','test@test.nl',170 FROM DUAL
WHERE NOT EXISTS (SELECT email FROM gebr_tickets WHERE email ='test@test.nl' )
这是另一种方式。
DELIMITER $$
CREATE PROCEDURE `sp_insert` ()
BEGIN
IF NOT EXISTS (SELECT email FROM gebr_tickets WHERE email ='test@test.nl' )
THEN
INSERT INTO gebr_tickets (name,gebr_name, password, email, RelatieID)
VALUES ('k','k','cmmNkftA','test@test.nl',170);
END IF;
END$$
DELIMITER ;
CALL sp_insert();
DROP PROCEDURE IF EXISTS `sp_insert`;
答案 2 :(得分:0)
您不能在过程/函数/触发器之外使用IF
之类的控制语句。你需要一个外壳。