任何人都可以看到为什么我收到此错误导致错误:
#1136 - Column count doesn't match value count at row 1
以下是查询:
INSERT INTO `people`
(`id`,`title`,`first_name`,`middle_initial`,`preferred_name`,`last_name`,
`home_phone`,`mobile_phone`,`email`,`gender`,`date_of_birth`,`qff`,`status`)
VALUES ('20','Mr','first','mid','pref','fam',
'home','mobile','email','male','0000-00-00','qff','active')
ON DUPLICATE KEY UPDATE
`people`.`id` = LAST_INSERT_ID(`people`.`id`),
`people`.`title` = 'Mr',
`people`.`first_name` = 'first',
`people`.`middle_initial` = 'mid',
`people`.`preferred_name` = 'pref',
`people`.`last_name` = 'fam',
`people`.`home_phone` = 'home',
`people`.`mobile_phone` = 'mobile',
`people`.`email` = 'email',
`people`.`gender` = 'male',
`people`.`date_of_birth` = '0000-00-00',
`people`.`qff` = 'qff',
`people`.`status` = 'active'
表结构:
CREATE TABLE `people` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` text,
`first_name` text,
`middle_initial` text,
`preferred_name` text,
`last_name` text,
`home_phone` text,
`mobile_phone` text,
`email` text,
`gender` enum('male','female') DEFAULT NULL,
`date_of_birth` date DEFAULT NULL,
`qff` varchar(20) NOT NULL,
`status` enum('active','inactive') NOT NULL,
`updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`updated_by` int(10) unsigned DEFAULT NULL,
`updated_by_type` enum('person','admin') DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
答案 0 :(得分:3)
前一段时间我遇到了完全相同的问题 - 对我而言,这个问题与相关桌面上的触发器有关。
答案 1 :(得分:-1)
最近我遇到了同样的问题,但是我使用了批处理插入/更新,我的问题不是关于trigger的问题,如果您使用了总的“ foreach”,那么它就是“ foreach”问题
<foreach collection="meters" index="index" item="meter" open="(" close=")" separator=",">
</foreach>
但错误代码是
错误代码:1136。列计数与行1 0.000秒处的值计数不匹配
我的测试 它将为您的代码添加另一个()(我没有检查日志)。 因此我们可以使用
< foreach collection="medichines" index="index" item="medichine" separator=",">
(
)
< /foreach>
这种方法可以解决您的错误