- iPhone topik
- Telekom mobilszolgáltatások
- Motorola Moto G06 Power – nagyfater új zakót vett
- Xiaomi 17 Ultra - jó az optikája
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Google Pixel topik
- Hivatalos: ekkor mutatkozik be a vivo X300 Ultra, és így néz ki hátulról
- Okosóra és okoskiegészítő topik
- Thaiföldön már videózzák a Samsung Galaxy A37-et és A57-et
- Xiaomi 17 - még mindig tart
Ú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
- PlayStation 5
- iPhone topik
- Így ismerd fel AI nélkül az AI képeket!
- Telekom mobilszolgáltatások
- Tőzsde és gazdaság
- Kertészet, mezőgazdaság topik
- Kerékpárosok, bringások ide!
- Forradalomi előrelépésként jellemzi az NVIDIA a DLSS 5-öt
- Mibe tegyem a megtakarításaimat?
- Motorola Moto G06 Power – nagyfater új zakót vett
- További aktív témák...
- Samsung Galaxy S26 Ultra 512GB - Silver Shadow - Samsung.hu, Garanciális, Kártyafüggetlen
- AOC 24G2ZE FHD/IPS/240hz (085)
- AMD Radeon RX 6900 XT ASRock Phantom Gaming D 16GB OC videókártya
- Dell WD19 USB-C dokkoló 130W adapterrel
- Kingston Fury Renegade PCIe 4.0 m.2 SSD (7300mb/s) ÚJ! BONTATLAN! 3 ÉV GARANCIA!
- Gamer PC-Számítógép! Csere-Beszámítás! R5 3600 / RX 5700XT / 16GB DDR4 / 500 SSD + 1TB HDD
- AKCIÓ! LENOVO ThinkPad P15 Gen 2 munkaállomás - i7 11800H 32GB DDR4 512GB SSD Quadro T1200 W11
- Bomba ár! Dell Latitude 5400 - i5-8265U I 16GB I 256SSD I 14" HD I HDMI I Cam I W11 I Gari
- Samsung Galaxy A52 128GB, Kártyafüggetlen, 1 Év Garanciával
- Dell Latitude Precision Üzleti gépek, 2-in-1 gépek, 3-11. gen.
Állásajánlatok
Cég: Laptopműhely Bt.
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.
