我使用一个查询插入多行,显然,ID 列会自动递增每一行。我想创建另一个 ID 列,并使查询期间插入的所有行的 ID 保持不变。因此,如果我在一个查询期间插入 10 行,我希望所有 10 行的 id 为“1”。如何才能做到这一点?谢谢你的帮助
如果我正确理解你的问题,你想提供一个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)";
UPDATE 1
- SQLFiddle 演示 http://www.sqlfiddle.com/#!2/285e1/1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)