我现在已经尝试了2个小时了,我无法让这个工作,所以我需要你的帮助。
我正在创建一个JavaFX应用程序,它使用存储过程在MySQL数据库中进行更改。好吧,我需要一个存储过程,接收6个参数,并根据寄存器是否存在,更新或插入。
我收到语法错误,它不关心我尝试的内容。这是我的商店程序现在它说UPDATE附近有错误:
DELIMITER $$
CREATE PROCEDURE `contactos`.`sp_guardar1` (IN foto varchar(100), IN nombres varchar(45), IN correo varchar(45), IN telf varchar(45), IN estado INT)
BEGIN
DECLARE IdAmi INT;
SET IdAmi = IdAmigo;
IF EXISTS (SELECT * FROM amigo WHERE IdAmigo = IdAmi)
UPDATE amigo SET foto = foto, nombres = nombres, correo = correo, telf = telf, estado = estado WHERE IdAmigo = @IdAmi
ELSE
INSERT INTO amigo(foto, nombres, correo, telf, estado) VALUES( foto, nombres, correo, telf, estado )
END
请帮助:)
答案 0 :(得分:1)
您的IF
语句缺少关键字THEN
。它应该是
IF EXISTS (SELECT * FROM amigo WHERE IdAmigo = IdAmi)
THEN --<-- correction here
UPDATE amigo
SET foto = foto, nombres = nombres, correo = correo,
telf = telf, estado = estado
WHERE IdAmigo = @IdAmi
ELSE
INSERT INTO amigo(foto, nombres, correo, telf, estado)
VALUES( foto, nombres, correo, telf, estado )
END