sql >> Database >  >> RDS >> Mysql

Voeg meerdere rijen in met dezelfde unieke ID

Als ik je vraag goed heb begrepen, wil je een ID . opgeven voor de specifieke groep van INSERT verklaringen.

Ervan uitgaande dat je dit schema hebt

CREATE TABLE TableName
(
    RecordID INT AUTO_INCREMENT PRIMARY KEY,
    OtherColumn VARCHAR(25) NOT NULL,
    GroupID INT NOT NULL
)

U kunt hiervoor twee uitspraken hebben:

1.) De laatste GroupID ophalen en verhoog het met 1 .

SELECT COALESCE(MAX(GroupID), 0) + 1 AS newGroupID FROM TableName

2.) nadat u het hebt uitgevoerd, slaat u de waarde op in een variabele. Gebruik deze variabele voor alle insert-instructies,

$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




  1. SQLite niet zo'n kolom

  2. Een use-case voor sp_prepare / sp_prepexec

  3. Wijzigingstijden voor MySQL-gegevensexport

  4. MySQL-subquery retourneert meer dan één rij