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

Генерирайте SQL за актуализиране на първичен ключ

Най-лесният начин да се справите с промените в първичния ключ - далеч - е да ALTER вашите препращащи ограничения за външен ключ да бъдат ON UPDATE CASCADE .

След това сте свободни да актуализирате стойностите на първичния ключ и промените ще преминат каскадно към дъщерни таблици. Това може да бъде много бавен процес поради всички произволни I/O, но ще работи.

Трябва да внимавате да не нарушите ограниченията за уникалност на колоната с първичен ключ по време на процеса.

По-труден, но по-бърз начин е да добавите нов UNIQUE колона за новия PK, попълнете го, добавете нови колони към всички препращащи таблици, които сочат към новия PK, махнете старите FK ограничения и колони, след което накрая махнете стария PK.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изброя записи с дата от последните 10 дни?

  2. Как да конкатенираме колони в Postgres SELECT?

  3. Как мога да използвам заявка с заместител в кавички? (perl / postgresql)

  4. postgresql мигрира JSON към JSONB

  5. Как да актуализирам всички колони с INSERT ... ON CONFLICT ...?