我的表t是
entry(自增的key)
col1
col2
col3
这样的形式
程序得到的值cn,我的语句用
insert into t set col1=c1,col2=c2,col3=c3;是可以的
但用
insert into t (col1,col2,col3) values(c1,c2,c3);(不包含key值)
这样不行,但我想写成这种形式的有什么办法不?
谢谢指点~

解决方案 »

  1.   

    不应该啊。能否给出你的 create table t, insert into t  (col1,col2,col3) values(c1,c2,c3);
    的语句,你可以先在你自己机器上直接用MYSQL试一下,如果有问题则把这些语句贴出来,别人可以测试一下。
      

  2.   

    CREATE TABLE `t` (
      `entry` int(8) unsigned NOT NULL default '0',
      `col1` int(2) default NULL,
      `col2` varchar(60) default NULL,
      `col3` varchar(255) default NULL,
      `col4` varchar(80) default NULL,
      `col5` longtext,
      PRIMARY KEY  (`entry`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    这个是dump出的SQL表结构。语句直接在mysql上测试报错Duplicate entry '0' for key 1
      

  3.   

    你可以把语句改成如下,再自己测试! 应该是第一次insertj时可以,之后都不可以了
    CREATE TABLE `t100` (
     `entry` int(8) unsigned NOT NULL default '0',
     `col1` int(2) default NULL,
     `col2` varchar(60) default NULL,
     `col3` varchar(255) default NULL,
     `col4` varchar(80) default NULL,
     `col5` longtext,
     PRIMARY KEY  (`entry`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    insert into t100 set col1=c1,col2=c2,col3=c3;insert into t100 (col1,col2,col3) values(c1,c2,c3);
      

  4.   

    这个形式的语句就要报错Duplicate entry '0' for key 1
    insert into t(col1,col2,col3,col4,col5) values(100,'x','yy','zz','dd');
    但我希望程序里面insert语句能以这种方式实现。有得救么?
      

  5.   

    把表定义 `entry` int(8) unsigned NOT NULL default '0'中的default '0'改成auto_increment就可以了吧
      

  6.   

    把表定义改成
    CREATE TABLE `t100` (
     `entry` int(8) unsigned auto_increment,
     `col1` int(2) default NULL,
     `col2` varchar(60) default NULL,
     `col3` varchar(255) default NULL,
     `col4` varchar(80) default NULL,
     `col5` longtext,
     PRIMARY KEY  (`entry`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    就可以了的
      

  7.   

    CREATE TABLE `t` (
      `entry` int(8) unsigned NOT NULL auto_increment,
      `col1` int(2) default NULL,
      `col2` varchar(60) default NULL,
      `col3` varchar(255) default NULL,
      `col4` varchar(80) default NULL,
      `col5` longtext,
      PRIMARY KEY  (`entry`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    试了,改成这种就可以实现了,谢谢楼上各位的指点!