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

Cách sử dụng vị trí thực của các hàng (ROWID) trong câu lệnh DELETE

Trên PostgreSQL, vị trí thực của hàng được gọi là CTID.

Vì vậy, nếu bạn muốn xem nó, hãy sử dụng QUERY như sau:

SELECT CTID FROM table_name

Để sử dụng nó trên một câu lệnh DELETE để loại bỏ các bản ghi trùng lặp, hãy sử dụng nó như sau:

DELETE FROM table_name WHERE CTID NOT IN (
  SELECT RECID FROM 
    (SELECT MIN(CTID) AS RECID, other_columns 
      FROM table_name GROUP BY other_columns) 
  a);

Hãy nhớ rằng table_name là bảng mong muốn và other_columns là các cột mà bạn muốn sử dụng để lọc.

Tức là:

DELETE FROM user_department WHERE CTID NOT IN (
  SELECT RECID FROM 
    (SELECT MIN(CTID) AS RECID, ud.user_id, ud.department_id
      FROM user_department ud GROUP BY ud.user_id, ud.department_id) 
  a);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. urlencode chỉ với các chức năng cài sẵn

  2. Sao lưu Postgresql DB Các phương pháp lý tưởng

  3. Postgres pl / java cảnh báo

  4. PostgreSQL - Cách loại bỏ các giá trị lặp lại

  5. Lưu cơ sở dữ liệu trên ổ cứng ngoài