- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Nvidia GPU-k jövője - amit tudni vélünk
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- RAM topik
- Canon EOS DSLR topic
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Életlen svájcibicska: Teszten az LG 45GX90SA okos gamer monitor
- Vezetékes FEJhallgatók
- Házimozi belépő szinten
- Androidos tablet topic
Új hozzászólás Aktív témák
-
nyunyu
félisten
Sokszorozás:
- Végigmész egy kurzorral a termék táblán, megjegyzed az eredeti adatait.
- kiosztasz neki egy új azonosítót
- beszúrsz egy új termék rekordot az eredeti adataival, csak id helyére az újat írod
- leválogatod a termék_kategoria táblából az eredeti terméked kategória értékeit
- beszúrod a termék_kategóriába az új termék_id, régi_kategória_id párosokat
- tetszés szerint ismétled-- sokszorozás
declare
regi_id number;
regi_name varchar2(100);
uj_id number;
i number;
cursor cur is
select p.id,
p.name
from product p
where instr(p.name,'_') = 0;
begin
open cur;
loop
fetch cur into regi_id, regi_name;
exit when cur%NOTFOUND;
for i in 1..1000
loop
uj_id := product_seq.nextval;
insert into product (id, name)
values (uj_id, regi_name || '_' || to_char(i));
insert into product_category (id, product_id, category_id)
select product_category_seq.nextval,
uj_id,
pc.category_id
from product_category pc
where pc.product_id = regi_id;
end loop;
end loop;
close cur;
end;Próbáltam SQLFiddlében összerakni a múltkori gyümölcsös példámat, de valamiért nem tetszik neki a szintaxis.
Hús-vér Oracle alatt persze simán legenerál 1000 új példányt minden termékből.
Ha a DB kezelőd automatikusan inkrementálja az id mezőt (kb. mindenki, kivéve Oracle
), akkor a for ciklus belsejében először beszúrod az új termék példányt, aztán leselectálod az id-jét az uj_id változóba, és úgy használod a termék_kategória beszúrásnál.Pl. SQL Serveren valahogy így
...
while @i <= 1000
begin
insert into product (name)
values (regi_name || '_' || convert(varchar(10),i));
select p.id
into @uj_id
from product p
where p.name = regi_name || '_' || convert(varchar(10),i));
insert into product_category (product_id, category_id)
select
@uj_id,
pc.category_id
from product_category pc
where pc.product_id = regi_id;
set @i = @i +1;
end;
..(Még jó, hogy mindenki másképp írja a szabvány SQLen felüli részt.)
Új hozzászólás Aktív témák
- Anglia - élmények, tapasztalatok
- Windows 11
- sziku69: Fűzzük össze a szavakat :)
- Portfolio Performance - befektetések nyomonkövetése
- Építő/felújító topik
- Marathon (2025)
- Amazfit Active 2 NFC - jó kör
- Reklámok kikapcsolása Xiaomi, Redmi és Poco telefonokon
- Jogász topik
- Ingyen és modern rendszerekre szánva tér vissza az Unreal Tournament 2004
- További aktív témák...
- Sigma 12-24mm f/4.5-5.6 EX DG HSM
- Eladó 4GB DDR4 laptop RAM-ok (SO-DIMM) többféle órajellel ( 10 darab )
- OHH! MSI CYBORG 15 Gamer Tervező Laptop 15,6" -30% i7-13620H 10Mag 16/512 RTX 4060 8GB FHD 144Hz
- ELADÓ 4 darab 8GB DDR4 ECC Registered (RDIMM) Szerver RAM modul
- Építőipari csomag (vakológépek, targoncák, építőipari eszközök és kellékek, egyéb, sok más)
- REFURBISHED - DELL Thunderbolt Dock WD19TB (210-ARJD), WD19TBS (210-AZBV)
- Dell Latitude E7270,12.5",HD,i5-6200U,8GB DDR4,128GB SSD,WIN11
- HIBÁTLAN iPhone 15 Pro 256GB White Titanium-1 ÉV GARANCIA - Kártyafüggetlen, MS4448
- 235 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4090
- AKCIÓ! Honor 200 Lite 8GB 256GB mobiltelefon garanciával hibátlan működéssel
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
), akkor a for ciklus belsejében először beszúrod az új termék példányt, aztán leselectálod az id-jét az uj_id változóba, és úgy használod a termék_kategória beszúrásnál.

