Моя процедура удаляет все строки, когда я использую оператор удаления - PullRequest
0 голосов
/ 21 ноября 2018

Это моя таблица:

create table if not exists Ditte(nome varchar(30), luogo varchar(30), ZIP int);

Это моя процедура:

delimiter // 
create procedure deleteDitta(zip int)
begin
DECLARE newZIP int;
SET newZIP = zip;
DELETE from Ditte where ZIP = newZIP;
end;
// 
delimiter ;

Это то, что я добавил в свою таблицу:

insert ignore into Ditte values ("Ditta1", "city1", 6828);
insert ignore into Ditte values ("Ditta2", "city2", 12345);

Когда я звонюмоя процедура deleteDitta и я поставил «12345» в качестве параметра (например: call deleteDitta(12345);), процедура должна удалить только вторую строку в таблице «Ditte», но она удалит все содержимое таблицы.Как я могу это исправить?

1 Ответ

0 голосов
/ 21 ноября 2018

Кажется, что MySQL запутался в именах столбцов и именах переменных.Изменение вашей процедуры для решения этой проблемы:

create procedure deleteDitta(dzip int)
begin
    DELETE from Ditte where ZIP = dzip;
end;

Демонстрация на dbfiddle

...