Ingres: Userrechte kopieren mit MAX?

Werbung:
Also du musst unterscheiden.

Richtiger Weg: Die Datenbank übernimmt das Erstellen des Primary Keys. Dazu muss die Tabelle entsprechend definiert sein (Stichwörter Sequenz, Serial, Identity, etc.)

zu Fuss und eventuell fehlerhaft: Geht natürlich auch. Du musst dann das, was du selektierst, auch hoch zählen, z.B.:
Code:
INSERT INTO tabelle(id,spalte)
SELECT (SELECT max(id) FROM tabelle) + ROW_NUMBER() OVER (ORDER BY spalte) As id,spalte FROM tabelle
@ukulele Habe hiermit ein bisschen rumprobiert, egal wo ich die klammern setze bekomme ich immer die Meldung:

The columns in the SELECT clause must be contained in the GROUP BY clause
 
@akretschmer
Ich habe einige Stunden rumprobiert und habe es nun dank deinem Tipp hinbekommen:

insert into %TABELLE% (idzuordnung, iduser, berechtigung) select ((select max(idzuordnung) from %TABELLE% where idzuordnung<=10000)+ROW_NUMBER() OVER (order by idzuordnung desc)), %NEUEUSERID%, berechtigung from %TABETTE% where resid=%IDUSERREFERENZ%;

In wirklichkeit ist das Statement sehr viel länger, ich habe es mal wieder für die Übersichtlichkeit eingekürzt...
Danke Dir!

Viele Grüße
Chris
 
Also bei mir klappt das wunderbar. Du hast entweder mehr im Select-Teil des Subselect stehen als nur max(id) oder Ingres hat hier eigene Vorstellungen von SQL.
 
Werbung:
Zurück
Oben