Phiên bản ngắn ở đây là sử dụng lastval
không đủ tiêu chuẩn là một ý tưởng tồi. Trình kích hoạt, quy tắc, v.v. có thể gây ra sự cố.
Bạn nên tránh lastval
toàn bộ. Sử dụng:
BEGIN;
INSERT INTO "users" ("email", "first_name", "last_name", "password", "objectstate_id", "activate_rid")
VALUES ('[email protected]', 'Xpress', 'Care', 'f9fecdd84ee071806423adf30d6d6ff04e1a0a2c6688f2c057ddbab1d6b55d02', 4, 'EMQHTMMvViAB5BdYj0E6')
RETURNING id;
ở đâu id
phải theo tên của cột khóa đã tạo.
Cách tiếp cận này sẽ xử lý các chèn nhiều giá trị và INSERT INTO ... SELECT ...
một cách chính xác và sẽ không gặp sự cố với trình tự chạm vào trình kích hoạt.
Nếu bạn phải sử dụng phương pháp dựa trên lời gọi hàm, ít nhất hãy sử dụng currval('tablename_id_seq')
(chuyển tên trình tự thích hợp) thay vì lastval
.