2016-08-18 2 views
0

ので、自動インクリメントのテストのために働くためにコールADDUSERS手順を取得できませんでしたデータを挿入すると予想されますが、このようなエラーが発生しました。は、私は自動インクリメントのためのアウトとしてユーザーIDを追加しますので、私はADDUSERS手順に問題がある

"エラー

SQL query: 

    CALL addusers 
    (

    'Rory', 
     'Covertry', 
     '5566', 
     '[email protected]' 
     '1234', 
     'U' 
    ) 

MySQLは言った:ドキュメント 1318 - PROCEDUREのconstruction.addusersの引数の数が正しくありませんが、7を予想、5だ"

をここに

ための私のストアド・プロシージャがあります
addusers 



DELIMITER go 
Create procedure Addusers(
    Out UserID int(11), 
IN FirstName varchar(30), 
IN LastName varchar(30), 
IN Password varchar(30), 
IN EmailAddress varchar(30), 
IN Salt varchar(40), 
IN RoleID varchar(1)) 
BEGIN 
insert into users(

FirstName, 
LastName , 
Password , 
EmailAddress , 
Salt , 
RoleID 
) 
Values 
(
FirstName, 
LastName , 
Password , 
EmailAddress , 
Salt , 
RoleID 
); 
set UserID = AUTO_INCREMENT; 

End 
go 
DELIMITER ;  
+0

を少し 'あり? 'アイコンをクリックします。それをクリックし、 '高度なヘルプ'を見て、正しく書式を設定するためにエディタを使う方法を見つけてください。 – RiggsFolly

+0

[次の自動インクリメントを得る手続き](http://stackoverflow.com/a/23716973/3814721)かもしれません。便利..- – mmushtaq

+0

私は実際にそれを見て、私はCALLのADDUSERSに ( 'ロリー'、 'Covertry'、 '5566'、 を試してみてください '[email protected]' '1234'、 'U' )は@UserIdを選択します。しかし、私は次のようなエラーが出た: "MySQLは言った:ドキュメント #1064 - あなたはあなたのSQL構文に誤りがあります。" rory "、 'の近くで使用する正しい構文についてはMySQLサーバのバージョンに対応するマニュアルをチェックしてください。ロリー・ライン3" 」、 'Covertry'、 '5566'、 '[email protected]' '1234'、 'U' –

答えて

0

代わりにAUTO_INCREMENT予約語の、あなたが呼び出しを行う際に、すべての7つのパラメータを置く:

DELIMITER go 
Create procedure Addusers(
    Out UserID int(11), 
IN FirstName varchar(30), 
IN LastName varchar(30), 
IN Password varchar(30), 
IN EmailAddress varchar(30), 
IN Salt varchar(40), 
IN RoleID varchar(1)) 
BEGIN 
insert into users(

FirstName, 
LastName , 
Password , 
EmailAddress , 
Salt , 
RoleID 
) 
Values 
(
FirstName, 
LastName , 
Password , 
EmailAddress , 
Salt , 
RoleID 
); 
set UserID = last_insert_id(); 

End 
go 
DELIMITER ;  

あなたは、このようなセッション変数を使用する必要がありますOUTパラメータを取得するには:

set @new_id = null; 
call addusers(@new_id,'Rory','Covertry','5566','[email protected]','1234','U'); 
select @new_id; -- contains the inserted id 
+0

ありがとう、それはついに働く。 –

+0

@DavidJones素晴らしい!受け入れられたとして私の答えをマークすること自由に感じる:) –

関連する問題