У меня проблема с хранимой процедурой, как в синтаксисе, так и в логике. Я получил ошибку ниже при попытке на sqlfiddle.com.
Также я не уверен, что логика верна. Могу ли я в любом случае проверить, введя идентификатор, и запрос вернет таблицу, в которой строка, содержащая идентификатор, была удалена?
создайте процедуру с именем delete_id, которая удаляет строку, идущую по идентификатору
CREATE PROCEDURE DELETE_ID (ID_INPUT IN INT)
AS
BEGIN
DELETE FROM TABLE ALBUM WHERE ID=ID_INPUT;
END;
Ожидаемый результат: введите идентификатор, и SQL удалит строку, содержащую идентификатор.
Фактический результат:
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 'TABLE ALBUM WHERE ID=ID_INPUT' at line 3
Возможный дубликат Простая синтаксическая ошибка MySQL
Привет, Гордон, даже когда я убираю слово «таблица». он все еще показывает ошибку: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «IN INT) AS BEGIN DELETE FROM ALBUM WHERE ID=ID_INPUT» в строке 1
Я не эксперт по MySQL, но, похоже, вам нужно написать список параметров как (IN id_input INT)






Вам нужно добавить "DELIMITER//" в начале кода и "//" в конце. Итак, ваш код должен выглядеть так
DELIMITER //
CREATE PROCEDURE `DELETE_ID`(IN `ID_INPUT` INT)
BEGIN
DELETE FROM `ALBUM` WHERE `ID` = ID_INPUT;
END //
Спасибо. Вы знаете, как я могу проверить код в db-fiddle? Например, ввести идентификатор и посмотреть, как изменилась таблица после выполнения процедуры?
Извините, я не использовал скрипт db. Я проверил код двумя способами перед публикацией. Первый был в консоли mysql, а второй — в phpmyadmin.
Если мой код ответил на вашу проблему, можете ли вы отметить его ответом, довольным?
Убери слово
table. Это не часть синтаксиса.