这是一个简单的问题,但我找不到错误
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$
关于mysql - 创建过程并将变量设置为查询时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25721452/