Den korta versionen här är att använda okvalificerad lastval
är en dålig idé. Triggers, regler etc kan orsaka problem.
Du bör undvika lastval
helt. Använd:
BEGIN;
INSERT INTO "users" ("email", "first_name", "last_name", "password", "objectstate_id", "activate_rid")
VALUES ('[email protected]', 'Xpress', 'Care', 'f9fecdd84ee071806423adf30d6d6ff04e1a0a2c6688f2c057ddbab1d6b55d02', 4, 'EMQHTMMvViAB5BdYj0E6')
RETURNING id;
där id
bör efter namnet på den genererade nyckelkolumnen.
Detta tillvägagångssätt kommer att hantera infogningar med flera värden och INSERT INTO ... SELECT ...
korrekt och kommer inte att ha problem med utlösare som rör vid sekvenser.
Om du måste använda en funktionsanropsbaserad metod, använd åtminstone currval('tablename_id_seq')
(passar lämpligt sekvensnamn) istället för lastval
.