sql >> Database teknologi >  >> RDS >> Mysql

Kan jeg i MySQL kopiere en række til at indsætte i den samme tabel?

Jeg brugte Leonard Challis' teknik med et par ændringer:

CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;

Som vikartabel bør der aldrig være mere end én post, så du behøver ikke bekymre dig om den primære nøgle. Indstilling til null giver MySQL mulighed for selv at vælge værdien, så der er ingen risiko for at skabe en dublet.

Hvis du vil være supersikker på, at du kun får én række at indsætte, kan du tilføje LIMIT 1 til slutningen af ​​INSERT INTO-linjen.

Bemærk, at jeg også tilføjede den primære nøgleværdi (1 i dette tilfælde) til mit midlertidige tabelnavn.



  1. Migrering af MySQL til PostgreSQL på AWS RDS, del 3

  2. Hvordan får jeg min, median og max fra min forespørgsel i postgresql?

  3. PHP &MySQL:mysqli_num_rows() forventer, at parameter 1 er mysqli_result, boolean givet

  4. Overvågning af sikkerhedskopier på tværs af instanser