MySQL:列计数与值计数不匹配

时间:2013-10-03 17:48:54

标签: mysql

更新** 感谢大家的帮助。非常感谢。这是一个正在使用的触发器,而不是Insert的问题。我在插入物上看到了隧道,忘了检查触发器。


我不能为我的生活找出这个mysql插件的问题:

INSERT INTO campaigns (camp_id,camp_name,camp_desc,camp_created,camp_creator,camp_start,camp_end,camp_active)
VALUES (null,'Clinic','2013 Clinic',now(),'user','2013-10-21','2013-10-25',1);

表:

Field           Type          Null    Key   Default             Extra
===========================================================================================
camp_id         int(12)       NO      PRI               auto_increment
camp_name           varchar(32)   NO            
camp_desc           varchar(255)  YES           
camp_created    timestamp     NO      CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
camp_creator    varchar(16)   NO            
camp_start      date          NO            
camp_end        date          NO            
camp_active         int(1)        NO        

感谢任何帮助。

每个请求:SHOW CREATE TABLE广告系列:

CREATE TABLE `campaigns` 
( `camp_id` int(12) NOT NULL AUTO_INCREMENT,
  `camp_name` varchar(32) NOT NULL,
  `camp_desc` varchar(255) DEFAULT NULL,
  `camp_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
       ON UPDATE CURRENT_TIMESTAMP,
  `camp_creator` varchar(16) NOT NULL,
  `camp_start` date NOT NULL,
  `camp_end` date NOT NULL,
  `camp_active` int(1) NOT NULL,
  PRIMARY KEY (`camp_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1

2 个答案:

答案 0 :(得分:5)

您的日期需要报价

INSERT INTO campaigns( camp_id, camp_name, camp_desc, 
                       camp_created, camp_creator, camp_start, 
                       camp_end, camp_active)
VALUES (null, 'Clinic', '2013 Clinic',
        now(), 'user', '2013-10-21',
        '2013-10-25', 1);

如果您仍然有错误,尤其是"Column Count Doesn't Match Value Count"错误,则最可能的解释是尝试执行另一次插入的触发器。

答案 1 :(得分:0)

除了juergen回答的错误之外,您还会遇到一个问题,即您有一个名为camp_id的列,您已将其声明为NOT NULL并且您正在向其中插入NULL

如果camp_id是自动增量,那么 试试这个::

INSERT INTO campaigns( camp_name, camp_desc, 
                       camp_created, camp_creator, camp_start, 
                       camp_end, camp_active)
VALUES ('Clinic', '2013 Clinic',
        now(), 'user', '2013-10-21',
        '2013-10-25', 1);