我的过程在使用delete语句时删除所有行

g6ll5ycj  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(408)

那是我的table:

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”中的第二行,但它会删除表中的所有内容。我该怎么修?

ghhkc1vu

ghhkc1vu1#

这似乎是mysql对列名和变量名的混淆。将您的操作过程更改为此操作可修复此问题:

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

在dbfiddle上演示

相关问题