在不知道表中的名称和列数的情况下向表中插入新行时,如何跳过列?
使用INSERT (col1, col2) VALUES (1, 2)
不是一种选择,因为我无法知道运行时的列数。这一切都是根据用户输入计算出来的。
因此,我需要id
在插入时跳过第一列( , PRIMARY KEY auto_increment)。
您可以在不提供列名的情况下插入,但您必须为所有列提供一些值。
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 ;
尝试插入 0 作为第一个值。如果该列是自动递增的,它应该可以工作。
来自 MySQL 参考:“未为 AUTO_INCREMENT 列指定值,因此 MySQL 自动分配序列号。您还可以显式地将 NULL 或 0 分配给列以生成序列号。” http://dev.mysql.com/doc/ refman/5.5/en/example-auto-increment.html