SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.05.2019 10:56:17

warma2d
Завсегдатай
Зарегистрирован: 12.08.2012
Сообщений: 33

Как подставить значение переданной переменной в процедуре ?

Добрый день!

Пытаюсь создать процедуру, в которую можно передать имя колонки, значение которой следует изменить у записи.

delimiter $$
CREATE PROCEDURE editBook(IN columnName varchar(200), IN val varchar(200), IN bookId INT)
BEGIN
    UPDATE `book` SET columnName=val
    WHERE id = bookId;
END$$
delimiter ;

CALL editBook('title', 'Букварь', 3);

Но почему-то значение туда не подставляется и выдается ошибка
Error Code: 1054. Unknown column 'columnName' in 'field list'


Подскажите пожалуйста можно ли динамически задавать имя колонки или как ?

Неактивен

 

#2 21.05.2019 12:32:54

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2238

Re: Как подставить значение переданной переменной в процедуре ?

В хранимках такое делается через подготовленные выражения.
https://sqlinfo.ru/forum/viewtopic.php?id=363
в помощь, читайте до конца.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 21.05.2019 12:57:20

warma2d
Завсегдатай
Зарегистрирован: 12.08.2012
Сообщений: 33

Re: Как подставить значение переданной переменной в процедуре ?

Благодарю! smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson