De korte versie hier is dat het gebruik van ongekwalificeerde lastval is een slecht idee. Triggers, regels, enz. kunnen problemen veroorzaken.
Je moet lastval vermijden geheel. Gebruik:
BEGIN;
INSERT INTO "users" ("email", "first_name", "last_name", "password", "objectstate_id", "activate_rid")
VALUES ('example@sqldat.com', 'Xpress', 'Care', 'f9fecdd84ee071806423adf30d6d6ff04e1a0a2c6688f2c057ddbab1d6b55d02', 4, 'EMQHTMMvViAB5BdYj0E6')
RETURNING id;
waar id moet door de naam van de gegenereerde sleutelkolom.
Deze benadering behandelt invoegingen met meerdere waarden en INSERT INTO ... SELECT ... correct, en zal geen problemen hebben met triggers die sequenties aanraken.
Als u een op functie-aanroep gebaseerde benadering moet gebruiken, gebruik dan in ieder geval currval('tablename_id_seq') (door de juiste volgordenaam door te geven) in plaats van lastval .