Új hozzászólás Aktív témák
-
martonx
veterán
Sziasztok!
Él ez a topik? Van egy kérdésem. Hogy lehetne egy MSSQL update parancsot insert-é alakítani? Valószínáleg az INSTEAD OF UPDATE triggert kellene használnom, de az istennek nem sikerült működésre bírnom.
Valaki tudna ebben segíteni?
Én kérek elnézést!
-
martonx
veterán
Erre gondolsz? Ez a legtömörebb megoldás, legalábbis MSSQL-ben biztos működik.
insert tábla2 (id, oszlop3)
select oszlop1, oszlop2 from tábla where oszlop2 is not nullEz a tábla2-be létrehoz egy új sort, melynek az értéke: id - tábla tábla oszlop1 értéke, oszlop3 pedig a tábla tábla oszlop2 mezője.
Lehet félreértettelek.
Én kérek elnézést!
-
martonx
veterán
Lehet félreértettelek, de nálunk (600 fős cégnél, ahol az IT csapatban dolgozok) ha változik az adatbázis struktúra, akkor backup (pontosabban real time replikációnk vana clusterek között, úgyhogy a pontosság kedvéért arra az időre a replikáció kikapcsolása), változtató script lefuttatása, majd teszt.
Ha továbbra is minden oké, akkor örülünk. Ha nagyon nagy a gáz, akkor visszaállunk. Ennyi. Nem hiszem, hogy ezzel mi találtuk volna fel a spanyol viaszt.
Mit kell ezen ennyit agyalni, meg körüljárni a témát?
Én kérek elnézést!
-
martonx
veterán
Hogy érted, hogy mi a változás? Ha külsős cég fejleszt, bennünket igazán nem is érdekel, hogy mi a változás. Ad egy sql scriptet, és azt a fent leírt módon lefuttatjuk.
Ha pedig mi fejlesztünk, akkor az ember csak tudja már, hogy mit fejleszt??? Nem értelek. Nem tudod, hogy mit fejlesztesz??? Vagy hogy melyik táblához, melyik eljáráshoz nyúltál hozzá???
Emellett azért napi szinten lementjük az sql scriptjeinket (táblák kivételével mindent), a kapott sql scripteket pedig feltoljuk SVN-be. Így SVN-ből bármikor visszanézhető, hogy mikor melyik sql scriptben mi változott. Néha jól tud jönni, ha a sok fejlesztő, plusz külsős cégek, véletlenül egymás scriptjeit felülírják, és vissza kell álltani egy előző állapotot.
Remélem segítettem.
Én kérek elnézést!
-
martonx
veterán
válasz vincent001 #598 üzenetére
MySQL adminisztráláshoz legjobb a Toad for MySql program. Ezzel fogsz tudni adatbázist exportálni, importálni.
Illetve ha valahol meglévő tárhely hostingod van, és onnan akarod az adatbázisodat leszedni, akkor ott gondolom alapból PhpMyAdmin áll rendelkezésre. Ezt még sosem használtam komolyan (elég ratyi), de azért biztos ez is tud valahogy adatbázist backupolni fájlba.Én kérek elnézést!
-
martonx
veterán
válasz Parameter #600 üzenetére
Nem írtad, hogy milyen SQL-t használsz. Én most MSSQL-ről fogok beszélni. Dátumot a convert-el (cast-tal) tudsz legegyszerűbben formázni
pl. convert(varchar(10), Nevek.Date, 102)
aztán a varcharral már azt csinálsz amit akarsz.Majd a kapott select-et sorba rendezve valami szerint (nemírtad le, hogy miből kell a második legnagyobb) belerakod egy fő selectbe. Ahol venném a top 2-t az a lselectből. És keresném a minimumát a valaminek.
Remélem érthető voltam.
Én kérek elnézést!
-
martonx
veterán
válasz Parameter #602 üzenetére
convert(varchar(10), Ertekek.Date, 102)
ez a dátumodat átalakítja yyyy.mm.dd. formátumba, szöveggé. Ebből nyilván ki kell vágnod a hónapot és a napot. Elárulom a substring paranccsal tudod ezt megtenni
Így meg fogod kapni a halmazt. Ezt sorbarendezed dátumra, majd ebből top 2 -vel kiválasztod az első két legnagyobbat. A két legnagyobból pedig min-nel kiválasztod a kissebbiket.
És kész.
Én kérek elnézést!
-
martonx
veterán
Szia!
SMSS2008R2 simán kezeli az SQL 2005-öt, én is így használom a melóhelyen.
Lebackupolni is tudod 2008-at 2005-re, csak a backup options-nél be kell állítani a cél SQL formátumot (mondjuk 2005-re).SMSS full telepítéskor kapsz egy SMO-t is, amivel tudsz komplett adatbázist scriptekké alakítani. Plusz van egy 3rd party ingyenes kiegészítő is ehhez, (szintén SMO-t használja, csak felhasználóbarátabb, bár szintén parancssoros) de nem jut eszembe a neve. Valahol codeplex-en megtalálod.
Remélem mindenre válaszoltam.
Én kérek elnézést!
-
martonx
veterán
bocsi, rosszul mondtam neked nem a backup kell, hanem kettővel alatta a Generate Scripts.
Ott ha végig csinálod a varázslót, akkor:
1. be tudod választani, hogy az adatok is belekerüljenek a scriptekbe (mondjuk egy 10 gigás adatbázisnál nem túl szerencsés)
2. be tudod állítani a cél SQL szerver verzióját.Én kérek elnézést!
-
martonx
veterán
nem kell ehhez algoritmus sima regex megoldja. Kérdés, hogy milyen SQL?
where adoszam mezo like 'adoszamregex' és kész.
ez a like 'adoszamregex' nyilván SQL típus függő megoldás lesz. MSSQL nem nagyon támogatja a szabványos regex-et, ha bármilyen más SQL-t használsz, akkor nyert ügyed van. MSSQL esetén C#-ban írni kell hozzá első körben egy saját regex függvényt.
Én kérek elnézést!
-
martonx
veterán
Szia!
Nyugodtan tárold a képeket adatbázisban. Akik az operációs rendszerre szavaznak, azoknak üzenem, hogy próbáljanak meg mondjuk egy dokumentum archiváló rendszer adatait fájl rendszerben tartani nagyvállalati környezetben (naponta pár ezer dokumentum belekerül).
Viszont ha az a célod, hogy van pár képed, és ezekre akarsz hivatkozni, akkor tényleg egyszerűbb azokat fájl rendszerben tartani, és sql-ben csak az útvonalukat eltárolni.
Én kérek elnézést!
-
martonx
veterán
válasz Sk8erPeter #629 üzenetére
Pont ugyanezt írtam én is.
Néha nem árt máshonnan is megerősítést kapni, hogy amit leírok, az tényleg helytálló.Én kérek elnézést!
-
martonx
veterán
Ez jó megoldás, csak nem hatékony, mert minden értéknél újra és újra ki kell számolni az átlagot.
Én kitenném egy változóba az átlagot, majd a változóval hasonlítgatnám össze.
Mondjuk ez már csak szőrszál hasogatás, de sokszor pont az ilyen apróságokon lehet futás perceket, órákat spórolni.Én kérek elnézést!
-
martonx
veterán
válasz bandikaa #661 üzenetére
Te tudod.
Olvasd már vissza, hogy mire kértél megoldást, milyen példa adatok alapján, és ehhez képest szerinted mi a jó megoldás. A kettő valahogy marhára nincs szinkronban. Azaz vagy nem jó kérdést tettél fel, vagy te magad nem tudod megválaszolni.
Máskor egy fokkal érthetőbben fogalmazd meg a kérdést, ha kérhetem. Esetleg ha odaírtad volna, hogy szerinted mi kellene, hogy legyen a jó megoldás, az is nagy segítség lett volna, ha már a fogalmazás nem meg túl jól.[ Szerkesztve ]
Én kérek elnézést!
-
martonx
veterán
Talán ha elmondtad volna, hogy mire is kell. Mert már maga felvetésed egy gyengébb agyrémmel ér fel.
Ha annyi a cél, hogy jegyezd, hogy xy elolvasta valamelyik tábla valamelyik sorát, akkor azt célszerű naplózással (mondjuk egy napló táblában jegyzed, hogy ki mit olvasott el) megoldani.
Ráadásul mi van ha xy elolvasta, de zw még nem?
Szerintem maga a felvetésed koncepcionális zsákutca. Persze majd úgyis megmagyarázod, hogy de miért ez a legjobb megoldás.Én kérek elnézést!
-
martonx
veterán
Ha nem özönvíz előtti Oracle-t használsz, akkor már van benne auto_increment, ugyanúgy kell használni, beállítani mint mssql-ben, csak éppen sequence-nek hívják.
azaz create table naplo (
id seguence,
stb...
)működik. Ez esetben az id-d automatikusan növekedni fog.
Én kérek elnézést!
-
martonx
veterán
Bevallom Oracle-t sose használtam. PostgreSQL viszont az Oracle kistestvére (mindkettő PLSQL). És PostgreSQL-ben bizony a 8-as verzió óta - ezt én is csodálkozva vettem észre - ha a PLSQL olyat lát, mint a fenti kódom, akkor bizony a háttérben automatikusan létrehozza a szekvenciát, hozzáadja a táblához stb...
Ebből gondoltam, hogy akkor biztos az Oracle is megoldotta már ezt a totál triviális lépést.
Ezek szerint az Oracle még mindig egy fos vagy csak még te se vetted észre, hogy egy ideje már ilyet is tudÉn kérek elnézést!
-
martonx
veterán
Senki nem mondta, hogy a DB2 vagy az MSSQL rokona lenne az Oracle PL/SQL-jének. Viszont jé, mit ír a wikipedia a PL/pgSQL-nél:
"It closely resembles Oracle's PL/SQL language."
Mint mondtam az Oracle-t csak nagyon felületesen ismerem, és ami eddig feltűnt, hogy nagyon hasonlít a PostgreSQL-hez (ami nem csoda hiszen rokonok). Ebből gondoltam a fentieket, de úgy látszik ennyire mégsem hasonlítanak, van amiben a PostgreSQL előrébb jár.
Én kérek elnézést!
-
martonx
veterán
válasz WonderCSabo #691 üzenetére
Ha MSSQL-ről beszélnénk azt mondanám, hogy próbáld ki ezt:
IF NOT EXISTS (select loadability into temp from shelves where rownumber = x and olumnnumber = y)
BEGIN
-- Ide jön majd az insert
END
ELSE
-- Ide jön más valamiDe valami ilyesminek Oracle-lel is mennie kellene.
[ Szerkesztve ]
Én kérek elnézést!
-
martonx
veterán
Szia!
Mennyi az az x oszlop? 3 vagy 500? Ha 3, akkor kérdezd le 3-szor. Ha 500, akkor írj egy tárolt eljárást, ami lekérdezi 500-szor felparaméterezve.
Másrészt biztos ezt akarod? Nem tudom mi az az alap problematika, amit ilyen elcseszett tábla szerkezettel lehet megoldani, de biztos van rá jobb megoldás.
Én kérek elnézést!
-
martonx
veterán
Ez esetben lehet érdemes lenne elgondolkozni azon, hogy nem SQL-ben oldod meg a kigyűjtést, hanem valamilyen programnyelvben.
A csv-t elég könnyű bármilyen nyelven bejárni, és megszámolgatni a betűket.
SQL-ben ez eléggé az SQL megerőszakolásának tűnik. Ráadásul ez esetben lehet SQL-lel megoldva sem lesz hatékonyabb az adatfeldolgozás.Egyébként igen MySQL-lel is le tudod kérdezni, csak át kell alakítanod a kapott T-SQL megoldást MySQL-nek tetszőre.
Én kérek elnézést!
-
martonx
veterán
válasz Apollo17hu #770 üzenetére
Ha már ismerkedés, akkor esetleg javaslom az MS SQL-t, MySQL-t és a PostgreSQL-t is kipróbálásra.
Én kérek elnézést!
-
martonx
veterán
válasz Sk8erPeter #809 üzenetére
MS SQL-nél az inner join nagyságrendekkel gyorsabb, mint a beágyazott selectek. Oracle-lel nincs tapasztalatom.
Mondjuk amíg nem több százezres táblákon használsz ilyen alselectes beágyazásokat, addig szinte mindegy.Én kérek elnézést!
-
martonx
veterán
válasz rum-cajsz #813 üzenetére
Nem gondoltam, hogy lehet olyan eset, ahol az alselect gyorsabb lehet, de végülis mittudomén talán előfordulhat ilyen.
Éppen a héten optimalizáltam egy kolléga kódját, aki szerette az alselecteket (mondjuk régivágású programozók még emlékeznek az SQL-ek hőskorára, amikor NEM is létezett inner join - 2000-es évek előtt). Mit ne mondjak százezres tételszámoknál (mind főselect, mind alselect több százezer sor) perceket lehetett nyerni, hogy 4-5 inner joinba rendeztem át a cuccot.Tényleg és ti mit szóltok a temp táblákhoz? Múltkor ledöbbenve hallottam, hogy nem kellene használni őket. Szerintem ez hülyeség. Szerintetek? MSSQL alatt eléggé furcsállom, hogy ne kellene temp táblákat használni. Én még PostgreSQL, MySQL-ben is használok temp táblákat (8.0 felett, az ennél régebbiekben inkább csak elméleti lehetőség, mintsem gyakorlati).
Én kérek elnézést!
-
martonx
veterán
válasz rum-cajsz #815 üzenetére
Az volt a javaslat, hogy temp tábla helyett hozzunk létre minden esetben igazi táblákat. Belegondolni is nonszensz...
Megdöbbentő, hogy néha magukat szakértőnek kiadó emberek, cégek mennyire nem értenek az adott témához.
Azt mondták azért jobb a minden esetben fizikai tábla, mert azt jobban lehet optimalizálni. Ez akár igaz is lehetne, node legyen több száz, több ezer fizikai táblánk? Ki fogja ezt karbantartani, átlátni? Hülyék....Én kérek elnézést!
-
martonx
veterán
És ezt végigcsináltad? Különösképpen az 5-ös 6-os pontokra:
http://www.webspell.org/index.php?site=faq&action=faq&faqID=16
Hibát írt ki közben?
Amúgy mire jó ez a webspell CMS? Miben jobb mint a hagyományos CMS-ek?
Én kérek elnézést!
-
martonx
veterán
Kérdéseim:
1. Ha ez egy szűz install, akkor miért pont egy noname CMS-re esett a választásod? Mivel jobb ez, mint egy garantáltan működő Drupal, Joomla, Wordpress CMS?
2. Próbáltad újra installálni?
4. Hibanélkül lementek a telepítések?
5. A legfrissebb verziót telepítetted?
6. Használsz hozzá plugineket, vagy rögtön installálás után, első működéskor írja ezt a hibát?Másrészt baromira semmi köze a problémának az SQL-hez, szvsz nem itt kéne vesződni egy noname CMS telepítési nyűgjeivel.
Én kérek elnézést!
-
martonx
veterán
3-as tényleg lemaradt
És az ismerősnél, akinél hiba nélkül lement a telepítő rendben működik? Vagy nála is ugyanez a hiba.A helyedben nyitnék egy külön topikot (ahogy látatlanban bizotsan van Drupal, Joomla stb. topik is itt a PH-n), vagy szétnéznék a CMS honlapján, hivatalos fórumában. Ha 2-nél kettő esetben nem működik telepítés után, akkor elég nyilvánvaló, hogy itt nem fogjuk tudni megoldani neked.
Nekem édes mindegy melyik CMS-t használod, csak a nagyokkal garantáltan nincs ilyen probléma. A kicsiket pedig nem véletlenül nem használja két tucat lelkes amatőrön kívül senki. De ízlések és pofonok.
Biztos nem mond neked sokat az SQL, elvégre nem itt kezdtél volna el kérdezősködni, de hidd el, az SQL egy gyűjtő fogalom, ahol SQL-es alap problémákkal szoktunk foglalkozni, nem pedig egyes adatbázisok telepítési hiányosságaival. Olyan ez, mintha vennél egy Trabantot, és egy autóelektronikai fórumban megkérdezed, hogy a te autódban miért nincs pótkerék.
Én kérek elnézést!
-
martonx
veterán
válasz Sk8erPeter #867 üzenetére
Maximálisan szívemből szóltál annyi különbséggel, hogy én már mindenre wordpresst használok, a drupal-t, joomla-t egyre inkább hanyagolom.
És amikor a noname CMS-ekkel való szívásokat látom, csak mosolygok, és azért megpróbálok segíteni.
Ettől függetlenül mindenki azzal szívatja magát, amivel akarja.Én kérek elnézést!
Új hozzászólás Aktív témák
- Milyen egeret válasszak?
- Samsung Galaxy S21 Ultra - vákuumcsomagolás
- Samsung Galaxy S23 Ultra - non plus ultra
- EAFC 24
- Politika
- VR topik (Oculus Rift, stb.)
- Elektromos (hálózati és akkus) kéziszerszámok, tapasztalatok/vásárlás
- Trollok komolyan
- Skoda, VW, Audi, Seat topik
- A jövőben csak Yahoo-fiókkal lehet használni a cég szolgáltatásait
- További aktív témák...
- Philips Evnia 42M2N8900 Gamer Oled Monitor!42"/4k/138hz/0,1ms/Freesync-Gsync/HDMI 2.1/TypeC/Ambiglow
- -56% HP EliteBook 840 G8:i7 1165G7,16GB RAM,512GB NMVe SSD,Iris Xe,IR kam.+ujj.olv.,vil.MAGYAR bill.
- Monitortató plexi konzol több elérhető készletről MONITORCENTER
- -50% HP EliteBook 840 G8: i7 1165G7,32GB RAM,1TB NMVe SSD,Iris Xe,IR kam.+ujj.olv.,vil.MAGYAR bill.
- 1.250.000 FT helyett 940.000 FT !! MacBook Pro 16" M3 Pro 12CPU / 18GPU / 18GB / 512 SSD