PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Премахване на дубликат от таблица

Това е една от многото причини всички таблици да имат първичен ключ (не непременно идентификационен номер или IDENTITY, а комбинация от една или повече колони, които уникално идентифицират ред и чиято уникалност е наложена в базата данни).

Най-добрият ви залог е нещо подобно:

SELECT field1, field2, field3, count(*) 
INTO temp_table1
FROM table1
GROUP BY field1, field2, field3 having count(*) > 1

DELETE T1
FROM table1 T1
INNER JOIN (SELECT field1, field2, field3
      FROM table1
      GROUP BY field1, field2, field3 having count(*) > 1) SQ ON
            SQ.field1 = T1.field1 AND
            SQ.field2 = T1.field2 AND
            SQ.field3 = T1.field3

INSERT INTO table1 (field1, field2, field3)
SELECT field1, field2, field3
FROM temp_table1

DROP TABLE temp_table1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Достъп до външни XML файлове като променливи в PSQL скрипт (източник от bash скрипт)

  2. Използвайте изведен текст от функция като нова заявка

  3. Превръщане на произволно много редове в колони в PostgreSQL

  4. Актуализиране на JLabel чрез SetIcon от тип данни bytea в postgres

  5. Как да избягате от низ, докато съвпадате с шаблон в PostgreSQL