Zeige Artikel 1 bis 2
Displaying posts with tag: automatisch (reset)
mySQL: Datensatz mit neuer ID duplizieren (kopieren, klonen)

Um in mySQL einen Datensatz (record) in einer Tabelle (table) zu kopieren und dabei gleichzeitig eine neue ID zu vergeben, nutzen Sie folgenden SQL Befehl in einem Aufruf:

CREATE TEMPORARY TABLE tmp SELECT * FROM beispiel WHERE id = 123;
UPDATE tmp SET id = null;
INSERT INTO beispiel SELECT * FROM tmp;

Die Erklärung:

Sie erstellen eine temporäre Tabelle (“tmp”) aus dem Datensatz Nr. 123 der Tabelle “beispiel”. Dadurch werden gleichzeitig die Felder der Tabelle ausgelesen und zwischengespeichert. Dann setzen Sie die ID in der Kopie auf “null” (das Feld wird geleert) und fügen diesen modifizierten Datensatz gleich wieder ein.

Weitere Möglichkeiten:

Natürlich können Sie im mittleren Schritt (hier das Setzen der ID auf “null”) auch andere Veränderungen am Datensatz durchführen. Wenn Sie z.Bsp. das Feld “name” mit “Max Muster” füllen möchten, nutzen Sie folgenden Befehl:

[Mehr]
mySQL: Update if exists else insert record (SQL statement)

Wenn Sie einen Datensatz in eine Datenbanktabelle einfügen möchten (wenn er noch nicht existiert) oder diesen updaten möchten (wenn er existiert), hilft dieser SQL Befehl:

1
      INSERT INTO TABLE (FIELDS) VALUES (VALUES) ON DUPLICATE KEY UPDATE FIELD = VALUE

Dieses Statement prüft, ob der Primary Key (PK) für den einzufügenden Datensatz bereits besteht, nutzt dann ein Update Befehl und ansonsten Ihren angegeben Insert Befehl.

Beispiel

Wir haben eine Tabelle “Test” mit den Feldern “A”, “B” (je vom Typ varchar) und “C” (integer). Die Felder “A” und “B” sind unser PK.

Ein normales SQL Insert Statement in die leere Tabelle:

1
2
      INSERT INTO Test (A,B,C) VALUES ('Testtext A1','Texttext B1', …
[Mehr]
Zeige Artikel 1 bis 2