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

その後、3 つの構文エラーが発生しました。そのうちの 1 つは sehirId の後の「0」にあり、2 番目は DECLARE 前の ilceId にあり、最後の 1 つは END にあります。

構文の何が問題になっていますか?

ありがとう。

4

1 に答える 1

0

END, add ;の後に区切り文字がありません。そこだけでなく、挿入ステートメントの後:

...
kullaniciSehir, kullaniciSehirIlce);

END;

ある種のクライアントで実行している場合は、create proc ステートメントの上下に DELIMITER ステートメントを追加する必要がある場合があります。

DELIMITER |

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