我使用一个查询插入多行,显然,ID列会自动递增每一行。我想创建另一个ID列,并且在查询期间插入的所有行的ID保持不变。因此,如果我在一次查询中插入10行,我希望所有10行都具有id“1”。如何才能做到这一点?谢谢你的帮助
答案 0 :(得分: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。)执行完毕后,将值存储在变量中。将此变量用于所有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