Hirdetés
- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Candy: Kossuth Lajos azt üzente, elfogyott a gémergépe
- Chosen: Intel Arc B580 játék kompatibilitás (2026.01)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- potyautas: Okos?telefon
- sh4d0w: Nyitlocker
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- eBay-es kütyük kis pénzért
Új hozzászólás Aktív témák
-
Magnat
veterán
válasz
shipfolt
#6014
üzenetére
Pl valamilyen sql-t, de ezt mondjuk a topik címe determinálja
Nem tudom mennyi bejegyzés van, de pár millió rekordot jó szervezés meg kulcsolás esetén kb bármilyen vason meg lehet oldani bármilyen sql szerverrel .. meg persze kell hozzá vmi frontend, jellemzően browseres megoldás a legelterjedtebb (ekkor persze kell webszerver, de az is van ingyé), de még excelben is meg lehet csinálni (ami a háttérben beszélget az sql szerverrel).Lehet pl MariaDB (azaz MySql), Transact (MS) Sql-nek is van ingyenes verziója olyan limitációkkal amit jó eséllyel nem fogtok elérni, meg még jó hosszan lehetne sorolni.
-
-
Magnat
veterán
válasz
kw3v865
#5975
üzenetére
Szia,
nem ismerem a PostgreSQL-t, de igent tippelnék, sőt, mivel az insert elvileg row exclusive lockol (tehát nem a teljes táblát) az is lehet, h a rekordok fele már be lesz szúrva amikor a fv lefut, a többi meg még nem ...
BEGIN;
TRUNCATE TABLE tábla;
LOCK TABLE tábla IN EXCLUSIVE MODE;
INSERT INTO tábla SELECT * FROM másik_tábla WHERE feltétel;
COMMIT;Én vhogy így csinálnám, nyilván ha a fv éppen akkor fut rá amikor ez történik, akkor egy picit várni fog. (Már ha fontos, h üres táblára vagy az insert közepén ne fusson le)
Illetve a truncate elvileg gyorsabb mint a delete, szóval amiatt is így használnám.
-
Magnat
veterán
válasz
shipfolt
#5962
üzenetére
Szia,
"De, amikor be kell allitani, akkor valahogy ra kell keresni minimum az "ID + megnevezes" mezokre, es nem latok arra lehetoseget, hogy ugyanabban a tablaban keressek, aminek az egyik rekordjat megnyitottam szerkesztesre." - no offense, de ez nem igazán sql kérdés, ez már annak az eszköznek a funkcionalitásának a függvénye, amiben a megoldást fejleszted. Sql kliens-szerver kontextusban egyébként sincs olyan, h valamit megnyitottál szerkesztésre, mármint létezik rekord és tábla lock is összetett tranzakcióknál, de ez amit leírtál a valóságban sztem tipikusan úgy néz ki, h kiadsz egy selectet bizonyos filterrel, amivel listázod a feladatokat, aztán amikor az egyiknek ki akarod jelölni a szülőjét, akkor adott kritérium szerint kiadsz egy másik selectet ez esetben ugyanarra a táblára valamilyen más szűréssel, aztán ha kiválasztotta a user, h melyik lesz a szülője, akkor kiadsz egy update-ot a megfelelő rekordra és beírod a kiválasztott szülő rekord id-ját a megfelelő mezőbe.
Ezen 3 művelet közben nem lesz megnyitva szerkesztésre az adott rekord (ideális megközelítésben legalábbis semmiképpen), hanem az sql szerver közben teszi a dolgát és amikor kiadod az update-ot a megfelelő rekordra, akkor megfogja és megcsinálja.
Triggerelést én is elengedném ezzel a problémával kapcsolatosan. -
Magnat
veterán
Üdv,
Mysql-ben van egy kis függvényem, ami egy adott mezőre (eladas_sum_brutto) végez műveleteket (lényegtelen, h mit) és ebből ad vissza egy értéket. (Bemenő paraméter az eladás id.)
Viszont jó lenne univerzálisra megcsinálni a függvényt úgy, h ne csak erre a mezőre lehessen meghívni hanem pl az eladas_sum_netto-ra is. Így azt találtam ki, h csinálok egy általános függvényt, aminek a második paramétere a mezőnév, amire az adott műveletet el kell végezni és egy változóba összerakva a lekérdezést dinamikus sql-lel futtatnám meg a PREPARE, EXECUTE, DEALLOCATE trió segítségével, csakhogy mint kiderült, a mysql nem támogatja a dinamikus sql-t tárolt eljárásban/függvényben, illetve triggerben.Van valakinek 5lete esetleg, hogyan tudnék egy sztringet (amiben a select össze van rakva a paraméterként kapott mezőnévvel) sql parancsként futtatni tárolt függvényben vagy muszáj lesz minden érintett mezőre külön megcsinálni a függvényt (vagy egy függvényben case-szel külön selecteket futattni attól függően, h mi a mezőnév paraméter)?
-
Magnat
veterán
válasz
martonx
#5513
üzenetére
Selectnél működik:
SET @row_number = 1;
SELECT
(@row_number:=@row_number + 1) AS num,`cust_partnerkod`
FROM cikktorzs_customer WHERE `cust_partnerkod`= 200000De update-nál nem, ugyanarra az értékre updateli az összes érintett sort:
SET @row_number = 1
UPDATE cikktorzs_customer c_c, (SELECT (@row_number:=@row_number + 1) AS num, cust_partnerkod AS i_c_p FROM cikktorzs_customer LIMIT 1 ) i_c_c SET `cust_partnerkod` = cust_partnerkod + @row_number WHERE cust_partnerkod = 200000 -
Magnat
veterán
"Sok fejfájástól megment, ha több tábla joinja alapján kell updatelni egy táblát..." - de ez egy tábla ...
"Egyébként már az updateedet sem értem, miért kéne többször lefutnia az alselectnek, ha egyre limitáltad a visszaadható eredmény számát?" - azért, mert egy rekordhoz egyszer kell lefusson, de az első update után változik az adatnézet, ha akkor újra kiértékelődik a belső select, akkor már az eggyel növelt értékű rekordot kellene (mármint a logikám szerint) megtalálnia.
-
Magnat
veterán
Üdv,
adott egy tábla (cikktorzs_customer) amiben a cust_partnerkod hibás kód miatt több ezer rekord esetében azonos értéket vett fel (200000). Akarnék egy updatet az érintett rekordokra ami annyit csinál, h kiolvassa a mindig aktuálisan legnagyobb partnerkódot és ahhoz egyet hozzáad.
UPDATE cikktorzs_customer c_c, (SELECT cust_partnerkod AS i_c_p FROM cikktorzs_customer ORDER BY cust_partnerkod DESC LIMIT 1) i_c_c
SET `cust_partnerkod` = i_c_p + 1
WHERE c_c.cust_partnerkod = 200000A gond ezzel annyi, h a belső select nem értékelődik ki újra minden alkalommal, így az összes rekord ami eddig 200000 volt, most 200001 lett. Ki tudja a megoldást?
Előre is köszi annak, aki
Új hozzászólás Aktív témák
Hirdetés
- Elektromos autók - motorok
- Elkezdődött a januári hardverpóker
- Lexus, Toyota topik
- Samsung Galaxy A54 - türelemjáték
- Path of Exile 2
- Kamionok, fuvarozás, logisztika topik
- Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)
- Battlefield 6
- Túraautó topik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- További aktív témák...
- Unihertz Titan 2, android 15 rendszerű, 2 kijelzős -fizikai billentyűzettel rendelkező telefon eladó
- Ryzen 5 2600 + gyári bontatlan hűtő
- Iphone 15 128Gb-7 hónapos-98% akku- Media Markt vásárlás
- Kingstone HyperX Predator RGB DDR4-3200Mhz-CL16 16GB (2x8GB)
- BESZÁMÍTÁS! Intel Core Ultra 5 235 14 mag 14 szál processzor garanciával hibátlan működéssel
- HIBÁTLAN iPhone 14 Pro 128GB Space Black-1 ÉV GARANCIA - Kártyafüggetlen, MS4420, 100% Akksi
- Samsung Galaxy S24 Ultra 120 Hz Dynamic AMOLED 2X, beépített S Pen, Galaxy AI 12/256 GB
- Intel Xeon E5-2600v4 processzorok készleten 2680v4,2683v4,2697v4,2697Av4(áfás számla, 2 év garancia)
- iKing - Apple iPhone 15 Pro Natural Titanium ProMotion 120 Hz, A17 Pro, USB-C 128 GB
- Apple iPhone 13 Pro Max Graphite ProMotion 120 Hz, Pro kamerák 256 GB-100%-3 hó gari!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

