sql >> Databáze >  >> RDS >> PostgreSQL

Jak aktualizovat řádky dvou tabulek, které mají omezení cizího klíče

V Postgresu můžete použít zapisovatelný CTE k aktualizaci obou tabulek v jediném příkazu.

Za předpokladu tohoto nastavení tabulky:

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 by bylo:

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

Jako (neodložitelné) cizí klíče se vyhodnocují na úrovni příkazu a primární i cizí klíč se mění ve stejném příkazu , tohle funguje.

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



  1. Zkontrolujte, zda existuje řádek s danými hodnotami

  2. SCD typ 4

  3. Otevření databáze Android Sqlite ve Fragmentu

  4. Vyberte sloupec v SQL, který není ve skupině