/ / Чому я не можу встановити змінну в підготовлену операцію в MySQL? - java, mysql, jdbc, приготований оператор

Чому я не можу встановити змінну в підготовленому твердженні в MySQL? - java, mysql, jdbc, prepared-statement

Я запускаю сценарій, щоб вставити деякі дані в базу даних MySQL, і він працює належним чином у робочому середовищі MySQL. Однак, коли я намагаюся запустити його з Java через JDBC, я отримую помилку.

INSERT INTO `pa_record` (`username`, `pa_record_type`, `record_time`) VALUES (?, ?, CURRENT_TIMESTAMP);
SET @record_id := 1;
INSERT INTO `pa_crud` (`pa_record_id`, `table_name`) VALUES (@record_id, ?);

Помилка, яку я отримую від JDBC

У вашому синтаксисі SQL є помилка; перевірте посібник, який відповідає вашій версії MySQL-сервера для правильного використання синтаксису біля "SET @record_id: = 1; INSERT INTO pa_crud (pa_record_id, table_name) VALUES "у рядку 2

Будь-які ідеї?

Відповіді:

1 для відповіді № 1

Багато (більшість?) Бібліотек доступу до бази даних не дозволяють виконувати декілька операцій в одному виконанні; ті, які роблять, зазвичай повинні мати функцію, активовану зі зміною налаштування. Вона, ймовірно, не скаржиться на SET, але що ви взагалі мали щось після закінчення першого запиту.