Хранимая процедура CONCAT() Код ошибки 1054, неизвестный столбец
Заранее спасибо за вашу помощь. Вы, ребята, потрясающие.
возникли проблемы с CONCAT() внутри хранимой процедуры. пытаясь создать INSERT INTO с переменными.
КОД ОШИБКИ 1054, Неизвестный столбец "Молоко" в списке полей.
Молоко - это значение, которое нужно вставить, а не столбец.
Вот КОД:
SET @s = CONCAT('insert into ',USR,' (Product, ProdId, ListName) VALUES (',food_name,',',PRODID,',',LISTID,')');
1 ответ
Решение
Вам нужно процитировать значение food_name
:
SET @s = CONCAT('insert into ',USR,' (Product, ProdId, ListName) VALUES (\'',food_name,'\',',PRODID,',',LISTID,')');
Как таковой, MySQL будет видеть значение без кавычек Milk
и предположим, что это имя столбца вместо строкового литерала.
Если другие столбцы в списке также являются символьными типами, то вы должны сделать то же самое для этих столбцов. Например, сделав предположение, что ListName
также тип символа, ваша процедура будет:
SET @s = CONCAT(
'insert into ',
USR,
' (Product, ProdId, ListName) VALUES (\'',
food_name,
'\',',
PRODID,
',\'',
LISTID,
'\')'
);