【问题标题】:mysql stored procedure column errormysql存储过程列错误
【发布时间】:2011-12-25 13:17:33
【问题描述】:

我收到以下错误。但是我没有在我的存储过程中输入 count 那么为什么会出现这个错误呢?

  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

【问题讨论】:

    标签: mysql database stored-procedures


    【解决方案1】:

    它抱怨的是列数(列数),而不是名为 count 的列。

    最可能的罪魁祸首是末尾的 insert 语句 - 确保它与 rp_indpstudy 的架构一致。

    【讨论】:

    • insert语句是罪魁祸首,因为我留下了主键id字段。但我将其设置为AUTO INCREMENT 那么为什么会出现错误。
    • 在我没有指定列名之前,我通过INSERT INTO rp_indpstudy (name,rp_adviser_id,rp_student_id) VALUES (topic,adv_id,std_id); 修复了错误
    猜你喜欢
    • 2016-02-08
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    相关资源
    最近更新 更多