sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan opdaterer du rækker af to tabeller, der har begrænsninger for fremmednøgle

I Postgres kan du bruge en skrivbar CTE til at opdatere begge tabeller i en enkelt sætning.

Forudsat denne tabelopsætning:

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 ville være:

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

Da (ikke-udskydelige) fremmednøgler evalueres på sætningsniveau, og både den primære og fremmede nøgle ændres i samme sætning , dette virker.

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



  1. Devart dotConnect til Oracle i Visual Studio 2015 - kompatibilitetsproblemer

  2. Generer en tabelrække med <td>-værdier fra DB PHP

  3. Android SQLite-forespørgsel, hvor kolonnen ikke er null og ikke tom

  4. php-variabel i MySQL rækkenavn