2011-12-25 38 views
0

我收到以下錯誤。但是我沒有在我的存儲過程中輸入count,所以爲什麼會出現這個錯誤?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 2011-12-25 13:32:19

+0

嗯,我通過INSERT INTO rp_indpstudy(name,rp_adviser_id,rp_student_id)VALUES(topic,adv_id,std_id)修復了錯誤;'在我沒有指定列名之前 – SupaOden 2011-12-25 13:37:04