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

Trình tự tạm thời trong một CHỌN

Tại sao bạn không thêm chuỗi serial cột khóa chính của bảng?

ALTER TABLE login ADD column login_id serial;
ALTER TABLE login ADD CONSTRAINT login_pkey PRIMARY KEY(login_id);

Thao tác đầu tiên sẽ viết lại bảng và mất một thời gian để khóa. Sau đó sẽ chạy

VACCUM FULL ANALYZE login;

Các lựa chọn thay thế kém hơn:row_number() như được chỉ ra bởi @Joachim . Để có hiệu suất tối đa, bạn có thể để OVER mệnh đề trống:

row_number() OVER () AS rn

Ngoài ra:sử dụng AS từ khóa cho bí danh cột (trong khi chúng chỉ nhiễu cho bí danh bảng).

Hoặc bạn có thể sử dụng ctid với tư cách là người đại diện cho khóa chính của một người đàn ông nghèo. Điều đó thậm chí sẽ còn nhanh hơn :

Chi tiết:
Tạo trình tự theo thứ tự

Ví dụ trên dba.SE:
đánh số hàng liên tiếp cho một số bảng



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể tạo dịch vụ được yêu cầu [org.hibernate.engine.jdbc.env.spi.JdbcEnosystem]

  2. Node PostgreSQL hết thời gian chờ một truy vấn của máy khách

  3. quyền bị từ chối cố gắng đọc tệp csv bằng JDBC cho cơ sở dữ liệu postgres

  4. Cách tạo câu lệnh tạo bảng sql cho một bảng hiện có trong postgreSQL

  5. Không thể cài đặt PostgreSQL:Đã xảy ra lỗi khi thực thi trình cài đặt thời gian chạy Microsoft VC ++ trên Windows XP