如何在表格中插入新行而不知道表格中的名称和列数时,如何跳过列?
使用INSERT (col1, col2) VALUES (1, 2)
不是选项,因为我无法知道运行时的列数。它全部来自用户输入。
因此,我需要在插入时跳过第一列(id
,PRIMARY KEY auto_increment)。
答案 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 ;