Как передать имя таблицы, имя столбца и значение в хранимую процедуру в Mysql

Я пытаюсь это сделать, но выдает ошибку

DELIMITER $$
CREATE  PROCEDURE usp_dynamicExc1 (Tablename varchar(100)
,Columnname  varchar(100),
Data varchar(100) )
BEGIN
SET @Tablename = Tablename;
SET @columnname = Columnname;
SET @value1 = Data;
SET @q= CONCAT('Insert into ',@tablename,' (',@columnname,') values (',@value1,')');
PREPARE stmt FROM @q;
EXECUTE stmt ;    DEALLOCATE PREPARE stmt;
END

Я получил эту ошибку

10:30:16    PREPARE stmt FROM @q    Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1    0.000 sec

Просто создайте параметры в Процедуре для имени таблицы и передайте их во время вызова. Дайте мне знать, если вам непонятно.

Raghbendra Nayak 09.08.2018 07:46

Это легко отладить - просто добавьте select '@' q перед подготовкой и закомментируйте подготовку, выполнение и освобождение. Кстати, вам не хватает; после установки @value = data (что, как я полагаю, является ошибкой транскрипции), за конечным оператором должен следовать разделитель, '@' 'query_table и' @ 'newrecord не являются выделенными значениями, поэтому будет null, что приведет к concat возвращает null, и вам не хватает предложения значений в вашем операторе вставки,

P.Salmon 09.08.2018 07:58

Вы можете мне четко сказать?

koushik 09.08.2018 08:07

Уже не ясно.

P.Salmon 09.08.2018 08:09

Я пробовал, но данные не были вставлены

koushik 09.08.2018 08:15

с этим вызовом p ('users', 'id, username', '999, bob'); ваш оператор вставки выглядит так: INSERT INTO users(id,username) (999,bob) - вам это подходит? обратите внимание, что пробелы на этом сайте неверно истолкованы.

P.Salmon 09.08.2018 08:29
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
6
28
0

Другие вопросы по теме