Kopieren Sie die Zeile aber mit neue id

Ich habe eine Tabelle "test" mit einem auto erhöht id und eine beliebige Anzahl von Spalten.

Möchte ich eine Kopie einer Zeile in dieser Tabelle mit allen Spalten die gleichen, außer für die id natürlich.

Gibt es eine Möglichkeit, dies zu tun, ohne den Namen aller Spalten?

Dachte ich INSERT... SELECT... ON DUPLICATE KEY würde mir helfen, bis ich gemerkt habe, dass es nie eine INSERT ON DUPLICATE es nur updates der vorhandenen Zeile.

  • Duplikat von : stackoverflow.com/questions/729489/... ?
  • Nein, es ist nicht doppelt. OP nicht verwenden möchten ON DUPLICATE ... und die genannten posten verwendet update, die OP nicht wollen.
  • Wo hat der OP gesagt, er will nicht aktualisieren? Der von Ihnen genannte Beitrag ist genau das, was er tun will. Eine Kopie einer Zeile und OHNE den Namen ALLER SPALTEN an.
  • OP sagt: "... bis ich merkte, dass Sie es nie macht ein insert on duplicate, sind es nur updates der vorhandenen Zeile."
  • Und, wenn Sie tatsächlich Lesen Sie den genannten Beitrag, die zweite Frage ist die Antwort, die die Verwendung einer temporären Tabelle. Sie können es nicht tun ohne den Namen aller Spalten auf andere Weise, die die OP nicht will. temp-Tabelle, Zeile einfügen, update-id, legen Sie in der ersten Tabelle.
  • Ja @JohnP, ist hier genau richtig.
  • OK. Problem mit auto_increment. Aktualisieren einer id in der tmp-Tabelle ist möglicherweise nicht nützlich sein, wenn kopiert Haupt-Tabelle. Da aktualisiert pk-Feld könnte der Wert bereits vorhanden sein, in der Haupt-Tabelle. Tim Ruehsen's Antwort, in der genannten post, die am besten für diese Anforderung.
  • Ja, ich werde mit Tim Ruehsen

InformationsquelleAutor Martin | 2012-07-04
Schreibe einen Kommentar