我正在使用一个查询插入多行,显然,ID 列会自动递增每一行。我想创建另一个 ID 列,并使查询期间插入的所有行的 ID 保持不变。因此,如果我在一次查询中插入 10 行,我希望所有 10 行的 id 为“1”。如何才能做到这一点?谢谢你的帮助
			
			4982 次
		
1 回答
            9        
        
		
如果我正确理解了您的问题,您想ID为特定的一组INSERT语句提供一个。
假设你有这个模式
CREATE TABLE TableName
(
    RecordID INT AUTO_INCREMENT PRIMARY KEY,
    OtherColumn VARCHAR(25) NOT NULL,
    GroupID INT NOT NULL
)
为此,您可以有两个语句:
1.) 获取最后一个GroupID并将其增加1.
SELECT COALESCE(MAX(GroupID), 0) + 1 AS newGroupID FROM TableName
2.) 执行后,将值存储在变量中。将此变量用于所有插入语句,
$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
于 2013-04-22T02:20:05.773   回答