2

在不知道表中的名称和列数的情况下向表中插入新行时,如何跳过列?

使用INSERT (col1, col2) VALUES (1, 2)不是一种选择,因为我无法知道运行时的列数。这一切都是根据用户输入计算出来的。

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

4

2 回答 2

4

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

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  ;
于 2012-04-15T16:01:42.147 回答
3

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

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

于 2012-04-15T15:53:12.393 回答