Mysql列计数不为';不匹配值计数(但它确实匹配!)

Mysql列计数不为';不匹配值计数(但它确实匹配!),mysql,mysql-error-1136,Mysql,Mysql Error 1136,我正在mysql中运行以下过程: create procedure addSavingAccount(id int(10), account_number varchar(10)) begin insert into saving values(id,'savings', account_number, 0); end // 但是,当我尝试调用它时,它会给我以下错误: mysql> call addSavingAccount(103, 'B505'); ERROR 1136 (21S01

我正在mysql中运行以下过程:

create procedure addSavingAccount(id int(10), account_number varchar(10))
begin
insert into saving values(id,'savings', account_number, 0);
end //
但是,当我尝试调用它时,它会给我以下错误:

mysql> call addSavingAccount(103, 'B505');
ERROR 1136 (21S01): Column count doesn't match value count at row 1
我检查了任何可能与之相关的东西,包括触发器。但一切似乎都应该起作用。以下是我的触发器列表:

create trigger balance_change_saving after update on saving for each row
begin 
if old.balance != new.balance
then

insert into balance_update_history values(null, 'saving', new.account_number, old.balance, new.balance,
                                            (SELECT NOW()), (select USER()));
end if;
end//

create trigger balance_insert_saving after insert on saving for each row
begin
insert into balance_update_history values(null, 'saving', new.account_number, 0, new.balance, (select now()), 
                                            (select user())); 
end //


create trigger balance_delete_saving after delete on saving for each row
begin
insert into balance_update_history values(null, null, null, old.balance, null,
                                        (SELECT NOW()), (select USER()));
end //
下面是我定义表格的地方:

create table if not exists saving(account_number varchar(10) , customer_id int(10), balance decimal(8,2), primary key(account_number));

我真的很想弄明白这一点。

根据表create语句有三列,而不是四列。(插入的最后一个0是什么?)


此外,在该过程中,插入值似乎与表创建顺序不符?因此,您可以重新排列insert值以匹配表,也可以使用insert指定列。

我不得不把手放在脸上一秒钟。谢谢你的帮助。