2015-06-14 46 views
1

我嘗試在臨時表中插入數據,但是當我調用select last_insert_id()時,它始終返回相同的數字。我已經設置了自動設置。如何在臨時表中插入新的數據集並使用Mysql獲取新的ID?

在正常的表工程,但是當我複製普通表到一個臨時表,然後我有選擇last_insert_id()的問題。

這是我的代碼:

CREATE TEMPORARY TABLE IF NOT EXISTS suchergebnisse_temp (SELECT * from suchergebnisse); 
INSERT INTO suchergebnisse_temp SET datensatzid='2865', datum='2015-05-13 00:00:00', tabelle='task', sortierung1='1'; 
SELECT LAST_INSERT_ID(); 

的普通表:

CREATE TABLE IF NOT EXISTS `suchergebnisse` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT, 
    `tabelle` varchar(100) NOT NULL DEFAULT '0', 
    `datensatzid` bigint(20) NOT NULL DEFAULT '0', 
    `datum` datetime NOT NULL, 
    `sortierung1` int(11) NOT NULL COMMENT 'Priorität', 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Temporäre Tabelle.'; 

你能幫助我嗎?謝謝:)

+0

您的插入語句被搞砸了 – AsConfused

回答

1

我忘了將該鍵明確添加到臨時表。它需要執行下面的代碼:

ALTER TABLE `suchergebnisse_temp` 
    CHANGE COLUMN `id` `id` BIGINT(20) NOT NULL AUTO_INCREMENT FIRST, 
    ADD PRIMARY KEY (`id`); 

因爲有:僅

CREATE TEMPORARY TABLE IF NOT EXISTS suchergebnisse_temp (SELECT * from suchergebnisse); 

copys的現場數據,但不是關鍵數據。關鍵數據必須分開申報。

相關問題