Hirdetés
- gban: Ingyen kellene, de tegnapra
- D@reeo: Pi-hole és a Telekom Sagemcom F@st 5670 DNS beállítása
- Klaus Duran: RCS
- MasterDeeJay: Mi ez a pici videókártya? AMD E9173 teszt
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- mefistofeles: Az elhízás nem akaratgyengeség!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Geri Bátyó: Agglegénykonyha 14 – Kések, késélezés
- Brogyi: CTEK akkumulátor töltő és másolatai
Ú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
- Amlogic S905, S912 processzoros készülékek
- Xbox Series X|S
- Építő/felújító topik
- MWC 2026: Kezünkben a minden tekintetben európai okostelefon
- Parfüm topik
- Whisky topik
- Milyen autót vegyek?
- HiFi műszaki szemmel - sztereó hangrendszerek
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Tesla topik
- További aktív témák...
- LENOVO ThinkPad s3 YOGA 14",i5-5200U,8GB DDR3,256GB SSD, WIN10,TOUCH
- HIHETETLEN! DE ÚJ DOBOZOS LAPTOPOK AKÁR FÉLPÉNZÉRT FÉLÁRON !!! ///////// FÉLPÉNZES LAPTOP //////////
- HP EliteBook 830 G8 11.Gen i5 16/256GB Gyári magyar bill, kb.0 perces, üzletből, 12 hó garanciával
- HIHETETLEN! DE ÚJ DOBOZOS LAPTOPOK AKÁR FÉLPÉNZÉRT FÉLÁRON !!! ///////// FÉLPÉNZES LAPTOP //////////
- 9 DARAB (FEBRUÁR 26) GAMER, TERVEZŐ, VÁGÓ LAPTOP -20 -50% NVIDIA 4050-4070 Quadro RTX A 1000-5000
- Samsung Galaxy A54 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Új Lenovo Thinkbook 14 G7 WUXGA IPS Ultra7 155H 16mag 32GB 1TB SSD Intel Arc Win11 Pro Garancia
- HIBÁTLAN iPhone 15 Plus 128GB Blue-1 ÉV GARANCIA - Kártyafüggetlen, MS4531,90% Akksi
- ThinkPad T14s Gen 2 i5-1135G7 16GB 512GB FHD 1 év garancia
- Dell Precision 5520 15,6" FHD, Xeon E3-1505M v6, 16GB RAM, Quadro 4GB VGA, SSD, jó akku, számla, gar
Á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.