Hirdetés
- MasterDeeJay: Ram gondolatok 2026 január - DDR3-as gép is lehet megoldás? Mi a minimum?
- Cifu: Űrhajózás 2025 - Összefoglaló írás
- Toomy: FOXPOST: régen jó volt, de már jobban jársz, ha elfelejted
- sh4d0w: Nyitlocker
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- eBay-es kütyük kis pénzért
- Parci: Milyen mosógépet vegyek?
- norbx: Számítógép.hu
- MasterDeeJay: i7 4980HQ asztali gépben (vs i7 4770)
Ú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
Hirdetés
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Duplázik a NAND is: a Samsung 100%-os áremelésben gondolkodik
- AMD vs. INTEL vs. NVIDIA
- Eredeti játékok OFF topik
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Szeged és környéke adok-veszek-beszélgetek
- Fotókon a Samsung Galaxy A57
- MasterDeeJay: Ram gondolatok 2026 január - DDR3-as gép is lehet megoldás? Mi a minimum?
- Bittorrent topik
- Melyik tápegységet vegyem?
- További aktív témák...
- Corsair Elgato Stream Deck Mini
- LG UltraGear 32GS95UX-B OLED Monitor! 32" 3840x2160 / 480Hz / 0.03ms / FreeSync / G-Sync! BeszámítOK
- Dell Pro 14 Plus PB14250 14" FHD+ IPS érintő Ultra 5 236V 16GB 256GB NVMe ujjlolv IR kam gar
- LG UltraGear 39GX90SA-W OLED Monitor! 3440x1440 / 240Hz / 0.03ms / FreeSync / G-Sync
- iPhone 15 Pro Max 256GB 100% (1év Garancia)
- Gamer PC-Számítógép! Csere-Beszámítás! R5 7600X / 32GB DDR5 / RTX 4060 / 500GB SSD + 1TB HDD
- Bomba ár! Dynabook Portege X30-F - i7-8565U I 16GB I 256SSD I 13,3" FHD I Cam I W11 I Garancia!
- AKCIÓ! Apple MacBook Pro 16 M4 Pro 48GB RAM 4TB SSD macbook garanciával hibátlan működéssel
- Microsoft Surface Laptop 4 13.5" Ryzen 5 4680U 6magos! 16GB 512GB 1 év garancia
- 196 - Lenovo Legion Pro 5 (16IAX10) - Intel Core U7 255HX, RTX 5070 (ELKELT)
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
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.
