MySQL表结构是10行,Esclipse连接数据库执行插入语句:
sql1="""insert into tdxtb_user values('220195','123456','123456','13476123050','1100','测试559','1','2','safeguard','2012-04-09');""";#insert
cur.execute(sql1);
报错:_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value count at row 1")但问题是在MySQL新建查询输入该SQL语句:
insert into tdxtb_user values('220195','123456','123456','13476123050','1100','测试559','1','2','safeguard','2012-04-09')插入成功,且将原来Esclipse上执行的语句的10个插入数据增加到11个,如下:
('220195','123456','123456','13476123050','1100','测试559','1','2','1','safeguard','2012-04-09')竟执行成功?!这个就很费解,求大神解答!!不胜感激!!

解决方案 »

  1.   

    sql1中的内容是什么,显示出来看看
      

  2.   

    show create table tdxtb_user 看看
      

  3.   

    不可能这些语句都能成功啊。建议你使用使用的同一个数据库,是不是两个表的结构根本不同。分析执行一下 desc tdxtb_user 在不同的环境中。
      

  4.   

    CREATE TABLE `tdxtb_user` (
      `User_ID` int(11) NOT NULL DEFAULT '0' COMMENT ,
      `Client_ID` char(12) NOT NULL DEFAULT '' COMMENT ,
      `Account` char(12) DEFAULT NULL COMMENT ,
      `User_Mobile` bigint(11) NOT NULL DEFAULT '0' COMMENT ,
      `Branch_ID` int(5) NOT NULL DEFAULT '0' COMMENT ,
      `User_Name` varchar(32) CHARACTER SET utf8 NOT NULL COMMENT ,
      `User_Type` tinyint(3) NOT NULL DEFAULT '0' COMMENT ,
      `User_Origin` tinyint(3) NOT NULL DEFAULT '0' COMMENT ,
      `User_Password` varchar(32) CHARACTER SET utf8 DEFAULT NULL COMMENT ,
      `Modify_Time` date NOT NULL DEFAULT '2012-01-01' COMMENT ,
      PRIMARY KEY (`User_ID`),
      KEY `Client_ID_Branch_ID` (`Client_ID`,`Branch_ID`)
    )
      

  5.   

    嗯:
    ('220195','123456','123456','13476123050','1100','测试559','1','2', 'safeguard','2012-04-09')--在SQL上执行成功在Esclipse报错。('220195','123456','123456','13476123050','1100','测试559','1','2','1','safeguard','2012-04-09')--在SQL上是错的但在Esclipse插入却成功了,我不懂得地方就是在这里,求解释?谢谢回复!
      

  6.   

    CREATE TABLE `tdxtb_user` (
      `User_ID` INT(11) NOT NULL DEFAULT '0' COMMENT '',
      `Client_ID` CHAR(12) NOT NULL DEFAULT '' COMMENT '',
      `Account` CHAR(12) DEFAULT NULL COMMENT '',
      `User_Mobile` BIGINT(11) NOT NULL DEFAULT '0' COMMENT '',
      `Branch_ID` INT(5) NOT NULL DEFAULT '0' COMMENT '',
      `User_Name` VARCHAR(32) CHARACTER SET utf8 NOT NULL COMMENT '',
      `User_Type` TINYINT(3) NOT NULL DEFAULT '0' COMMENT '',
      `User_Origin` TINYINT(3) NOT NULL DEFAULT '0' COMMENT '',
      `User_Password` VARCHAR(32) CHARACTER SET utf8 DEFAULT NULL COMMENT '' ,
      `Modify_Time` DATE NOT NULL DEFAULT '2012-01-01' COMMENT '',
      PRIMARY KEY (`User_ID`),
      KEY `Client_ID_Branch_ID` (`Client_ID`,`Branch_ID`)
    )SET @sql1="insert into tdxtb_user values('220195','123456','123456','13476123050','1100','测试559','1','2','safeguard','2012-04-09');";
    PREPARE stml FROM @sql1;
    EXECUTE stml;测试通过
      

  7.   


    是Eclipse,一时手快打错,汗颜..
      

  8.   


     事实上,我用的是Python在Eclipse上连接的MySQLdb。
    测试结果还是很纠结,在MySQLdb上插得进去但Eclipse上就是查不进去,还是报错:
    :_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value count at row 1")
    头大...
      

  9.   

    打开你的普通查询日志,监视一下你的程序到底传送的是什么SQL语句。