Zähler in Tausender Schritten in SQL eintragen

julia29

Erfahrenes Mitglied
Hi,

alle 1000 Datensätze möchte ich per php-script in einem Feld eine Zahl eintragen. Gibt es dafür einen sinnvollen Befehl mit dem ich das machen könnte? Also einen Zähler nicht Datensatz für Datensatz in 1er sondern nach 1000 Datensätzen in 1000er Schritten.
Beispiel:
id 1-1000 Feld Zaehler=1
id 1001-2000 Feld Zaehler=2
id 2001-3000 Feld Zaehler=3

id ist eigentlich unwichtig. Es reicht auch so:
bis 1000 = Feld Zaehler = 1
bis 2000 = Feld Zaehler = 2
bis 3000 = Feld Zaehler = 3

mfg
Julia
 
Zuletzt bearbeitet:
Moin!

Also das geht schon, die Frage ist nur ob das Sinn macht. Kann man nicht erst beim Auslesen der Tabelle den Wert generieren? Das dürfte doch reichen...
Im Übrigen gehe ich mal davon aus, Deine Frage bezieht sich auf MySQL - da vor allem MySQL-Benutzer immer wieder gern vergessen das es noch andere Datenbanken gibt...
Du kannst mit Triggern das Verhalten der Spalten beeinflussen:
Code:
CREATE TABLE test(
  `id` INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY
, `counter` INTEGER NULL DEFAULT NULL
, ...
);

DELIMITER //

CREATE TRIGGER
  test__after_insert
AFTER
  INSERT
ON
  `test`
FOR
  EACH ROW
BEGIN
  UPDATE
    `test`
  SET
    `counter` = FLOOR(NEW.id/1000)
  WHERE
    `id` = NEW.id
  ;
END;

//
DELIMITER ;

Weitere Informationen findest Du hier:
http://dev.mysql.com/doc/refman/5.1/de/create-trigger.html
http://dev.mysql.com/doc/refman/5.1/de/create-procedure.html

Gruß
Enum
 
Zuletzt bearbeitet:
Hi Enum,

vielen Dank für die Ideen. Ja - sorry, es geht um MySQL.
Mit dem Trigger werde ich mich mal die nächsten Tage auseinandersetzen.

mfg
Julia
 
Zurück