Slejvání relačně propojených tabulek

25 views
Skip to first unread message

Jan Michálek

unread,
Jan 26, 2023, 4:47:46 AM1/26/23
to postgr...@googlegroups.com
Zdravím, mám tu takovej problémek.

Mám dvě tabulky spojené vazbou 1:n. Dva takové páry a potřebuju je slít - což ovšem znamená, že mi dojde ke kolizi klíčů, tj, potřebuju v rámci insertu převýst primární klíč na nové hodnoty podle sekvence.

Měl jsem v úmyslu použít WITH a returning - něco jako

WITH ins AS (
    INSERT INTO a (a,b,c,d)
    SELECT a,b,c,d FROM a2
     RETURNING a.id a_id, a2.id a2_id)
INSERT INTO b (a_id, x, y, z)
SELECT ins.a_id, x, y, z
FROM b2
JOIN ins ON b2.a_id = ins.a2_id;

Což ale nefunguje - na hodnoty z toho ce mám ve "FROM" se nedostanu z RETURNING.

Existuje na to nějakej inteligentní trik, kterej by nezahrnoval přidávání sloupců?

Díky Je;

--
Jelen
Starší čeledín datovýho chlíva
Reply all
Reply to author
Forward
0 new messages