PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Postgres không trả về lastval () đúng cách

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 .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. xóa các ký tự không phải số trong một cột (ký tự thay đổi), postgresql (9.3.5)

  2. SQL Server Import and Export Wizard Lỗi khi xuất sang PostgreSQL

  3. GitHub Actions:Cách kết nối với Postgres trong GithHub Actions

  4. Cách lấy số hàng trong PostgreSQL

  5. Không thể xuất bảng AWS RDS Postgres sang CSV trong S3 bằng cách sử dụng hàm aws_s3.query_export_to_s3