0

我正在做一个项目,我需要通过 MySQL 中的存储过程将一些值传递给表。所以我做了这样的程序。

create procedure KullanıcıKayıt(
IN kullaniciAd nvarchar(50),
IN kullaniciSoyad nvarchar(50),
IN kullaniciSifre int(10),
IN kullaniciMail nvarchar(50),
IN kullaniciTelNo int(10),
IN kullaniciAdres nvarchar(100),
IN kullaniciSehirAd nvarchar(50),
IN kullaniciSehirIlceAd nvarchar(50)
)

这些是我剩下的程序

BEGIN

DECLARE sehirId INT DEFAULT 0;
DECLARE ilceId INT DEFAULT 0;

Select @sehirId=sehirId from sehir 
where kullaniciSehirAd=sehirAd;

Select @ilceId=sehirIlceId from sehirIlce 
where kullaniciSehirIlceAd=sehirIlceAd;

Insert Into kullanici(kullaniciAd, kullaniciSoyad, kullaniciSifre, kullaniciMail, 
kullaniciTelNo, kullaniciAdres, kullaniciSehir, kullaniciSehirIlce) values         (kullaniciAd,
kullaniciSoyad, kullaniciSifre, kullaniciMail, kullaniciTelNo, kullaniciAdres, 
kullaniciSehir, kullaniciSehirIlce)

END

然后我得到了三个语法错误。其中一个在 DECLARE vefore ilceId 上的第二个 sehirId 之后的“0”上,最后一个在 END 上。

我的语法有什么问题?

谢谢。

4

1 回答 1

0

后面缺少分隔符END,添加 ; 那里以及您的插入语句之后:

...
kullaniciSehir, kullaniciSehirIlce);

END;

如果您在某种客户端中执行它,您可能需要在 create proc 语句的上方和下方添加 DELIMITER 语句:

DELIMITER |

create procedure KullanıcıKayıt(
...
END;
|
DELIMITER ;
于 2012-10-07T22:54:11.417 回答