SQL - jak vlozit do obou tabulek?

Jan Kral kral na fortech.cz
Středa Září 10 07:27:35 CEST 2014


Ten Váš popis co vlastně potřebujete není nic moc, ale předpokládám, že potřebujete do tabulky tab2 zapsat ID záznamu, který jste vložil předchozí operací do tab1. Obávám se, že jedním příkazem to udělat nepůjde. Musíte použít víc příkazů nelépe obalených transakcí. Pak by mohlo fungovat to select max(id) from tab1. Bez obalení transakcí se můžete dostat do stavu, kdy uloží v mezičase nějaký záznam někdo jiný (v případě, že není konkurenční přístup tak se to nemusí řešit). V normálních databázích bývá proměnná, která vrátí ID záznamu, který byl insertnutý posledním příkazem, u Vaší DB je na to snad nějaká funkce getGeneratedKeys().

S pozdravem JK

-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Jaroslav Lukesh
Sent: Wednesday, September 03, 2014 7:07 PM
To: HW-news
Subject: OT: SQL - jak vlozit do obou tabulek?

Dobrý den,

potřeboval bych pomoc s dotazem, který by pro každý řádek v tab2 vložil jeden záznam do tab1, no a ještě k tomu něco vložil do tab2.

tab1: ID,X
tab2: ID,ID1,Z

Do tab1 potřebuji přidat vypočítaný záznam podle řádku v tab2 a odpovídající
max(tab1.id) uložit do tab2.ID1. Z tab2 se do tab1 se neukládá žádná zpětně zjistitelná hodnota, k čemu v tab2 záznam v tab1 patří. Přidat sloupec nelze (nevím co by to rozhodilo).

V základu by fungovalo toto, ale potřebuji právě dostat odpovídající tab1.ID do tab2.ID1

SELECT 'ahoj' as X
INTO tab1
FROM tab2
where Z = 3

Je to nějaká javovská embedded databáze derby, takže toho dost neumí (ani select top 1...).

Děkuji, JL. 

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list