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

Как да актуализирате редове от две таблици, които имат ограничения за външен ключ

В Postgres можете да използвате записваем CTE, за да актуализирате и двете таблици в един израз.

Ако приемем тази настройка на таблицата:

create table a (rid integer primary key, ride text, qunta integer);
create table b (kid integer primary key, rid integer references a, date date);

CTE ще бъде:

with new_a as (
  update a 
    set rid = 110
  where rid = 1
)
update b 
  set rid = 110 
where rid = 1;

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

SQLFiddle:http://sqlfiddle.com/#!15/db6d1/1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ограничения за имена на колони в таблицата Postgres?

  2. Двойка ключови стойности в PostgreSQL

  3. как да имам нечувствителен към акцентите филтър в django с postgres?

  4. Каква е паролата по подразбиране за postgreSQL, инсталиран от Gitlab Omibus версия?

  5. Възможно ли е да се използва pandas/sqlalchemy за вмъкване на масиви в sql база данни? (postgres)