Я вставляю несколько строк, используя один запрос, и, очевидно, столбец идентификатора автоматически увеличивает каждую строку. Я хочу создать еще один столбец идентификаторов, и идентификатор останется неизменным для всех строк, вставленных во время запроса. Поэтому, если я вставляю 10 строк во время одного запроса, я хочу, чтобы все 10 строк имели идентификатор «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.) как только вы его выполнили, сохраните значение в переменной. Используйте эту переменную для всех операторов 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