2

我正在使用一个查询插入多行,显然,ID 列会自动递增每一行。我想创建另一个 ID 列,并使查询期间插入的所有行的 ID 保持不变。因此,如果我在一次查询中插入 10 行,我希望所有 10 行的 id 为“1”。如何才能做到这一点?谢谢你的帮助

4

1 回答 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 回答