这是一个直截了当的问题,但我找不到错误
CREATE PROCEDURE agregarCitaNota(in id int, in nota text)
BEGIN
DECLARE @column text;
SET @column = (SELECT Detalle FROM cita WHERE idCita = id);
IF @column = null THEN
UPDATE cita SET Detalle = nota WHERE idCita = id;
ELSE
UPDATE cita SET Detalle = Detalle + nota WHERE idCita = id;
END$
出于某种原因,它给了我一个错误,我一直在编写此代码,但无法正常工作。它说它在哪里
Set @column = (Select Detalle FROM cita WHERE idCita = id);
在此先感谢大家!
最佳答案
删除@
。 user defined variables(@)和声明的变量(无@)之间有区别。
另外,您不应该命名像关键字这样的变量。
与null
的比较是通过... is null
而不是... = null
完成的。
如果您只是想知道某个条目是否存在,请使用exists()
而不是实际获取数据。
如果要在文本后面附加文本,请使用concat()
。
CREATE PROCEDURE agregarCitaNota(in id int, in nota text)
BEGIN
IF NOT EXISTS (SELECT Detalle FROM cita WHERE idCita = id) THEN
UPDATE cita SET Detalle = nota WHERE idCita = id;
ELSE
UPDATE cita SET Detalle = CONCAT(Detalle, nota) WHERE idCita = id;
END IF;
END$