Den korte version her er at bruge ukvalificeret lastval
er en dårlig idé. Triggere, regler osv. kan give problemer.
Du bør undgå lastval
helt. Brug:
BEGIN;
INSERT INTO "users" ("email", "first_name", "last_name", "password", "objectstate_id", "activate_rid")
VALUES ('[email protected]', 'Xpress', 'Care', 'f9fecdd84ee071806423adf30d6d6ff04e1a0a2c6688f2c057ddbab1d6b55d02', 4, 'EMQHTMMvViAB5BdYj0E6')
RETURNING id;
hvor id
skal ved navnet på den genererede nøglekolonne.
Denne tilgang vil håndtere inserts med flere værdier og INSERT INTO ... SELECT ...
korrekt og vil ikke have problemer med triggere, der berører sekvenser.
Hvis du skal bruge en funktionsopkaldsbaseret tilgang, skal du i det mindste bruge currval('tablename_id_seq')
(passer det passende sekvensnavn) i stedet for lastval
.