2011-12-25 43 views
0

次のエラーが表示されます。しかし、私はストアドプロシージャに型付きカウントを持たないので、なぜこのエラーを出すのですか?mysqlストアドプロシージャ列エラー

CALL updateproposalStatus(1,5) Error Code: 1136. Column count doesn't match value count at row 1 

ストアドプロシージャ:

CREATE DEFINER=`root`@`localhost` PROCEDURE `updateProposalStatus`(IN decision INT, IN x INT) 
BEGIN 
DECLARE adv_id varchar(30); 
DECLARE std_id varchar(30); 
DECLARE topic varchar(255); 

select 
a.id INTO adv_id 
from 
rp_proposal p 
inner join rp_adviser a on p.rp_adviser_id = a.id 
where p.proposal_id=x; 

select 
s.id INTO std_id 
from 
rp_proposal p 
inner join rp_student s on p.rp_student_id = s.id 
where p.proposal_id=x; 

select 
p.title INTO topic 
from 
rp_proposal p 
where p.proposal_id=x; 

UPDATE rp_proposal_status 
SET state_rp_controller =decision 
WHERE rp_proposal_id = x; 

IF decision = 1 THEN 
INSERT INTO rp_indpstudy VALUES (topic,adv_id,std_id); 
END IF; 
END 

答えて

1

それはそれはないcountという名前の列について、文句を言っていることを列数(カラム数)があります。

最終的にinsertというステートメントがあります。rp_indpstudyのスキーマと一貫していることを確認してください。

+0

私は主キーのIDフィールドを残したので、挿入ステートメントが原因です。しかし私はそれを 'AUTO INCREMENT'に設定しました、なぜそれがエラーを出すのですか? – SupaOden

+0

まあ、私はエラーを 'INSERT INTO rp_indpstudy(name、rp_adviser_id、rp_student_id)VALUES(topic、adv_id、std_id);'で修正しました。 – SupaOden

関連する問題