2013-04-22 54 views
2

我使用一個查詢插入多行,顯然,ID列自動遞增每行。我想創建另一個ID列,並且ID在查詢期間插入的所有行保持不變。所以如果我在一個查詢期間插入10行,我希望所有10行都有ID「1」。如何才能做到這一點?感謝您的幫助插入具有相同唯一ID的多行

+0

我不明白的問題。什麼阻止你僅僅創建另一列,並保持所有10個插入內容的值相同? – sachleen 2013-04-22 02:14:52

+1

你是說你想添加第二列,例如:'secondaryId',並且對於插入的所有記錄來說,這是相同的嗎?或者你想'primaryId'是相同的(這是不可能的)。 – SOfanatic 2013-04-22 02:15:28

+0

如果你不希望它自動增加,你爲什麼要創建auto_increment列? – 2013-04-22 02:17:36

回答

9

如果我正確理解您的問題,您希望爲特定的INSERT語句組提供ID

Assumming你有這樣的架構

CREATE TABLE TableName 
(
    RecordID INT AUTO_INCREMENT PRIMARY KEY, 
    OtherColumn VARCHAR(25) NOT NULL, 
    GroupID INT NOT NULL 
) 

你可以有這樣兩個語句:獲取最後GroupID

1)和1增加它。

SELECT COALESCE(MAX(GroupID), 0) + 1 AS newGroupID FROM TableName 

2.)一旦你已經執行它,將值存儲在一個變量中。使用此變量對所有的INSERT語句,

$groupID = row['newGroupID']; 
$insert1 = "INSERT INTO TableName(OtherColumn, GroupID) VALUES ('a', $groupID)"; 
$insert2 = "INSERT INTO TableName(OtherColumn, GroupID) VALUES ('b', $groupID)"; 
$insert3 = "INSERT INTO TableName(OtherColumn, GroupID) VALUES ('c', $groupID)"; 

更新1

+2

正是我期待的。非常感謝! – Alex 2013-04-22 02:36:25

+1

不客氣':D' – 2013-04-22 02:36:41

相關問題