插入MySQL时跳过列

时间:2012-04-15 15:50:34

标签: mysql insert

如何在表格中插入新行而不知道表格中的名称和列数时,如何跳过列?

使用INSERT (col1, col2) VALUES (1, 2) 不是选项,因为我无法知道运行时的列数。它全部来自用户输入。

因此,我需要在插入时跳过第一列(id,PRIMARY KEY auto_increment)。

2 个答案:

答案 0 :(得分:3)

尝试插入0作为第一个值。如果列自动递增,它应该可以工作。

来自MySQL参考: “没有为AUTO_INCREMENT列指定值,因此MySQL会自动分配序列号。您还可以显式为列分配NULL或0以生成序列号。 “ http://dev.mysql.com/doc/refman/5.5/en/example-auto-increment.html

答案 1 :(得分:3)

您可以在不提供列名的情况下插入,但必须为所有列提供一些值。

INSERT INTO comments 
VALUES (null, 2, 3, 4,null,6) 

CREATE TABLE IF NOT EXISTS `comments` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `imageid` int(10) unsigned NOT NULL DEFAULT '0',
  `uid` bigint(20) unsigned NOT NULL DEFAULT '0',
  `content` text CHARACTER SET utf8,
  `adate` datetime DEFAULT NULL,
  `ip` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
   KEY `ids` (`imageid`,`adate`) USING BTREE
) ENGINE=InnoDB  DEFAULT CHARSET=latin1  ;