插入具有相同唯一ID的多行

时间:2013-04-22 02:12:06

标签: php mysql

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

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