Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Codeblock
languagesql
firstline1
linenumberstrue
set search_path to <schemaname>;

-- Sequenz erstellen
CREATE SEQUENCE meinenummer
INCREMENT 1
MINVALUE 1
MAXVALUE 9999999999 -- muss groß genug sein um alle Datensätze durchnummerieren zu können
START <Nächste zu vergebende Nummer>;

 -- Datensätze durchnummerieren
UPDATEWITH <Tabelle> SET <Nummernfeld> = '<MeinPrefix>' || NEXTVAL('meinenummer')::varchar(255)
FROML AS (
  SELECT intid, datcreated
  FROM <Tabelle>
  WHERE datcreated > make_date(<Jahr>, <Monat>, <Tag>) -- Durchnummerierung ab diesem Erstellungsdatum
  ORDER BY datcreated
  FOR UPDATE
)
UPDATE <Tabelle> SET <Nummernfeld> = '<MeinPrefix>' || NEXTVAL('meinenummer')::varchar(255)
FROM L
WHERE <Tabelle>.intid = L.intid;

-- Nummernkreis aktualiseren
UPDATE zz47_nummernkreise SET nextvalue = NEXTVAL('meinenummer')
WHERE name='<Nummernkreisname>';

-- Sequenz löschen
DROP SEQUENCE meinenummer;

-- Veränderte Datensätze anzeigen
SELECT intid, datcreated, <Nummernfeld>
FROM <Tabelle>
WHERE datcreated > make_date(<Jahr>, <Monat>, <Tag>)
ORDER BY datcreated ASC;

...