表請看下錶:使用下面的語句MySQL的INSERT INTO SELECT與AUTO_INCREMENT
CREATE TABLE `FooAttachments` (
`AttachmentId` bigint(20) NOT NULL AUTO_INCREMENT,
`FooId` bigint(20) NOT NULL,
`AttachmentPath` varchar(100) NOT NULL,
PRIMARY KEY (`AttachmentId`),
KEY `IX_FooAttachment_FooBase` (`FooId`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf16
如果我行插入這個表,創建行和人工智能領域已經產生了價值。
INSERT INTO FooAttachments (FooId, AttachmentPath) VALUES (1, 'test path');
然而,當我嘗試按如下方式使用INSERT INTO SELECT語句,我得到一個錯誤:
INSERT INTO FooAttachments
SELECT 1 AS FooId, 'test path' as AttachmentPath;
我得到的錯誤是:#1136 - 列計數不匹配值計數在第1行
據我所知,我沒有指定AttachmentId列,但我不這樣做在INSERT INTO ... VALUES語句或者這一個工作。更重要的是,我不想爲該列指定一個值,它應該是自動生成的。
我應該如何編寫第二個查詢?
感謝您的回答。我測試了這一點,它確實有效,但我選擇了其他答案,因爲我發現在一列中插入一個NULL,最後得到一個有點衝突的值。 – Dragonspell 2014-12-05 03:13:07