Lukas.: mysql: Tabelle, alle Einträge um 10 IDs verschieben

Hallo,

ich möchte in einer Tabelle alle Einträge um 10 IDs nach hinten verschieben.

Konkret:

Es gibt eine Spalte KID, die AUTO_INCREMENT ist. Nun möchte ich die komplette Tabelle 1:1 erhalten, nur die Einträge in der Splate KID müßten um jeweils 10 höher sein, als sie es jetzt sind. Hintergrund ist, daß ich die Einträge 1-10 aus einer bestimmten Suche herauslasse, weil ich diese normalerweise für interne Einträge reserviert halte.

Lukas

  1. Hallo Lukas.,

    Es gibt eine Spalte KID, die AUTO_INCREMENT ist. Nun möchte ich die komplette Tabelle 1:1 erhalten, nur die Einträge in der Splate KID müßten um jeweils 10 höher sein, als sie es jetzt sind. Hintergrund ist, daß ich die Einträge 1-10 aus einer bestimmten Suche herauslasse, weil ich diese normalerweise für interne Einträge reserviert halte.

    MYSQL kennt den Befehl „NOT“ damit kannst du in deiner Abfrage ganz einfach sagen, dass er alle Zahlen von 1-10 überhaupt nicht berücksichtigen soll.

    Ansonsten leg dir eine zweite Tabelle an, schreib dir ein kleines Script, kopiere die Daten von Tabelle 1 nach Tabelle 2, lass dynamisch die IDs anpassen, lösch die alte Tabelle und benenne die neue Tabelle in die alte Tabelle um.

    1. Liebe Mitdenker, liebe Wissende, liebe Neugierige,

      ja!

      Es gibt eine Spalte KID, die AUTO_INCREMENT ist. Nun möchte ich die komplette Tabelle 1:1 erhalten, nur die Einträge in der Splate KID müßten um jeweils 10 höher sein, als sie es jetzt sind. Hintergrund ist, daß ich die Einträge 1-10 aus einer bestimmten Suche herauslasse, weil ich diese normalerweise für interne Einträge reserviert halte.von

      MYSQL kennt den Befehl „NOT“ damit kannst du in deiner Abfrage ganz einfach sagen, dass er alle Zahlen von 1-10 überhaupt nicht berücksichtigen soll.

      abgesehen davon, dass das Ganze so Schmuddelkram ist (IDs vergewaltigen), kann man das kopieren der Tabelle auch ausschließlich mit sql-Statements durchführen. Die neue Tabelle einfach mit Start-ID anlegen und dann "insert from select" benutzen. Beim Select das "Order by" nicht vergessen.

      Da IDs aber i.d.R. (auch) der Herstellung von Relationen dienen, ist das Vorhaben überhaupt nicht sauber.

      Spirituelle Grüße
      Euer Robert
      robert.r@online.de

      --
      Möge der wahre Forumsgeist ewig leben!
  2. Hallo,

    Hintergrund ist, daß ich die Einträge 1-10 aus einer bestimmten Suche herauslasse, weil ich diese normalerweise für interne Einträge reserviert halte.

    Warum nimmst du dafür dann nicht eine Extratabelle?

    Gruß
    Kalk

    1. Tach!

      Hintergrund ist, daß ich die Einträge 1-10 aus einer bestimmten Suche herauslasse, weil ich diese normalerweise für interne Einträge reserviert halte.

      Warum nimmst du dafür dann nicht eine Extratabelle?

      Oder ein Extra-Feld, das bei Intern-Verwendung einen Eintrag hat. Dann gehen sogar mehr als 10 Einträge zu verwenden. IDs eine andere Bedeutung zuzuweisen als die eindeutige Kennzeichnung von Datensätzen ist jedenfalls keine besonders gute Idee.

      dedlfix.