テーブルの名前も列の数も知らずに、テーブルに新しい行を挿入するときに列をスキップするにはどうすればよいですか?
実行時に列の量がわからないため、使用することはできません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