我正在使用一个查询插入多行,显然,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 回答