SELECT Klausel in setval

Hallo allerseits,
ich möchte eine sequence auf einen bestimmten Wert setzen. Dazu möchte ich mittels eines SELECT Befehls den aktuellen MAX Wert holen. Weiß jemand warum das nicht funktioniert?

SELECT setval('name_der_seq', SELECT MAX(id) FROM table , true);

Optional würde ich das jetzt in eine Funktion auslagern, wo ich ja bequem den MAX Wert in einer Variablen zwischenspeichern könnte.

Danke schonmal

Wäre eine Lösung, klar. Geht aber einfacher:

select setval(‘name_der_seq’, max(id), true) from table;

Andreas

Danke für die schnelle Antwort. Da wär ich so nicht drauf gekommen!! Denn die Syntax mit dem “FROM table” am Ende hätte ich an dieser Stelle nicht erwartet. Hab das in Verbindung mit Funktionen so noch nicht gesehen.
Gibt es da irgendwo eine gute Grammatik/Syntax Beschreibung zu, wo man das schnell herbekommt.
Gruß,
Matthias

Ich versteh Dein Problem nicht, ist doch gaaaaanz logisch:

select setval('name_der_seq', max(id), true) from table;

ist nicht anders zu verstehen als eine Funktion setval(), die 3 Parameter braucht. 2 davon sind fix (der ersten und dritte), der 2. Parameter ist aus einer Tabelle abzufragen. Wenn Du z.B. die max() eines Wertes einer Tabellenspalte wissen willst, lautet das SQL ja auch select max(column) from table.

Andreas

Das ist mir schon alles soweit klar. Aber instinktiv wäre ich davon ausgegangen, dass ich auch eine SELECT Anweisung innerhalb der Parameterliste einfügen kann. Aber jetzt funzt erstmal alles soweit.
Gruß,
Matthias