Hirdetés

2024. május 1., szerda

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  SQL kérdések (kiemelt téma)

Hozzászólások

(#1301) sztanozs válasza Sk8erPeter (#1300) üzenetére


sztanozs
veterán

Paraméterezett esetben a fejlesztői nyelv általában segítséget nyújt abban, hogy az értéket ne string formában, hanem a nyelv natív adatformátumában (pl. java, .net) adja át, amit az adatbáziskezelő csomag képes olyan formában átadni a db szerver számára, hogy az ne okozzon értelmezési/konverziós problémát.
Persze olyan környezetben, ahol nincs natív datetime formátum, ott ez nem segít...

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1302) rum-cajsz válasza sztanozs (#1301) üzenetére


rum-cajsz
őstag

Szerintem az egész dátum paraméter átadási problémát elkerülhetnéd, ha datetime adattípus átadása helyett stringet adnál át, és használnál dátum konverziós SQL függvényeket .

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#1303) Sk8erPeter válasza rum-cajsz (#1302) üzenetére


Sk8erPeter
nagyúr

Idézem, amit itt írt:
"egy 10/11/12-ről megmondani, hogy mi volt az eredeti dátum 33%-os eséllyel lehet - és az adatbáziskezelő is ilyen eséllyel vesz fel jó értéket."
Ez egy jogos szempont, erre hogy alkalmazol dátumkonverziós függvényeket úgy, hogy biztosan a jó eredményt kapd?
Még akkor sem egyértelmű, ha legalább az évszám négy számjegyű, mert így is felcserélődhet a nap-hónap.

====

(#1301) sztanozs : ez végül is igaz.
Mondjuk a UNIX timestamp (másodpercek) legalább tuti nem téved, aztán abból akármilyen formátumra is átalakíthatod.
A felhasználói inputnál meg normális esetben a normális fejlesztő úgyis megoldja, hogy a dátum szigorúbb feltételekhez legyen kötve, akár szétbontva a dátumot külön-külön mezőkre (év, hónap, nap, stb.), akár egy JavaScript-alapú datepickerrel egyszerűbbé téve a választást.

Sk8erPeter

(#1304) rum-cajsz válasza Sk8erPeter (#1303) üzenetére


rum-cajsz
őstag

Az a programozó, aki megengedi, hogy bármit beírhassanak a dátum típusú mezőbe, az megérdemli, hogy a tökén végigrobogjon egy GNU csorda. (de látom Te is pont ezt írod alant)

Azt pedig már tényleg csak nagyon zárójelben jegyzem meg, hogy ha a dátum adatok vegyes szerkezetűek, akkor elég nagy felelőtlenség/hanyagság előfeldolgozás nélkül belehányni őket egy dátum típusú mezőbe.

De az eredeti kérdés egyébként így nézett ki:
INSERT INTO log (DateTime, TypeID) VALUES ({ ts '1990-12-31 00:00:00' } , 1)

Szerintem nincs olyan valós indok, ami felhozható a prepare statment ellen. (de szerintem ebben is egyetértünk)

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#1305) Sk8erPeter válasza rum-cajsz (#1304) üzenetére


Sk8erPeter
nagyúr

Na várj, szerintem elbeszélünk egymás mellett. :D
Senki nem is mondta eddig, hogy a prepared statement ne lenne jó, sőt, eddig mindenki amellett érvelt. :D Amit sztanozs felhozott, az az, hogy adatbázisonként eltérhet a datetime formátuma (erre én is linkeltem a MySQL-es, meg az MSSQL-es példát, hogy máshogy néz ki), ez már eleve problémát okozhat, tehát hiába adsz át stringként prepared statementtel valamit, ha a formátum akkor is rossz, mert mondjuk más formátumra van konfigurálva az adatbázisszerver, vagy mittudomén.
De már kezdek én is belezavarodni. :D

"Az a programozó, aki megengedi, hogy bármit beírhassanak a dátum típusú mezőbe, az megérdemli, hogy a tökén végigrobogjon egy GNU csorda."
:DD
Agreed. :K

Sk8erPeter

(#1306) sanzi89


sanzi89
addikt

Újabb gyönyörűség. Van egy táblám, benne adatok. Nincs semmilyen kulcs, csak behányva mindenféle adat. Van benne 2 sor, ami totálisan megegyezik, minden mező értéke ugyan az. Ebből kellene SQL lekérdezéssel törölni csak az egyiket. Ezt meg lehet egyáltalán csinálni?

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1307) Sk8erPeter válasza sanzi89 (#1306) üzenetére


Sk8erPeter
nagyúr

Már miért ne lehetne? :F Összesen van 2 sor, ami egyezik, és az egyik sort törölni szeretnéd? Mi ebben a nehéz? Milyen adatbázis? Milyen adatbázis-kezelőt használsz egyáltalán, hogy a kérdés felmerült?

Sk8erPeter

(#1308) sanzi89 válasza Sk8erPeter (#1307) üzenetére


sanzi89
addikt

Hát, az a nehéz benne, hogy nem tudom hogyan kell. :DDD

Van egy adatbázis - Access - amiben van rengeteg adat, ebből kikeresem a szar sorokat, és ezekből kellene törölni úgy, hogy csak egy maradjon. ODBC-n fut, és Delphiben kellene rá egy Query-t csinálni, amihez ugye kellene egy SQL parancs. Ez hibádzik.

De örülök, hogy ilyen egyszerű probléma, mert akkor várom a megoldást.

[ Szerkesztve ]

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1309) Sk8erPeter válasza sanzi89 (#1308) üzenetére


Sk8erPeter
nagyúr

Szerencsére nem sok dolgom van Access-szel.
De gyorsan rákeresve ezzel pl. lehet böngészni Access adatbázist is: RazorSQL
Lehet, hogy elbeszélünk egymás mellett, de amit írtál, azt úgy értelmezhető, hogy összesen 2 egyező sor van, és az egyiket törölni kellene. De javíts ki, ha arra gondolsz, hogy MINDEN sorból dupla van......
Ha viszont csak egy, akkor igazából nem vágom, hogy most mi is a probléma, egy rendes grafikus alapú adatbázis-kezelőben csak az adott sornál rámész, hogy delete, és meg is vagy. Vagy beadod query-ként, most csak legegyszerűbb példával élve:
DELETE FROM akármitábla WHERE id = 3
[link]

Sk8erPeter

(#1310) martonx válasza sanzi89 (#1308) üzenetére


martonx
veterán

Próbáld meg az Access grafikus tábla megjelenítőjében jobb gomb, törlés-sel. Persze lehet, hogy ekkor is törli mindkét sort? Bár nem hinném.

Én kérek elnézést!

(#1311) sanzi89 válasza Sk8erPeter (#1309) üzenetére


sanzi89
addikt

Egy Delphiben írt program egyik modulja lenne az, hogy bizonyos hiba miatt néha rekordok duplázódnak. Ezekből nem tudjuk mennyi van, vagy hogy hol vannak az adatbázisban. Eljutottam oda, hogy ezek a hibás adatok ki vannak listázva egy DBGrid-be. Itt a user kiválasztja, hogy melyiket hagyjuk meg - sajna így kell csinálni, mivel lehet más hiba is, és oda kell az, hogy el lehessen dönteni melyik maradjon - és a kiválasztottat törölni. Rengeteg sor van, több százezer, és lehet csak egy duplázott sor van benne.
Szóval külön adatbázis böngészőt nem használhatok, nem tudok simán rámenni és törölni. Plusz nincs ilyen, hogy id, nincs semmi. Ilyesmi sorokat képzelj el:
Név | Kártyaszám | Születési hely
Kis Pista | 1 | Budapest
Kis Pista | 1 | Budapest
Nagy Béla | 2 | Debrecen

Ebből kellene az egyik Kis Pistát törölni.

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1312) Goose-T válasza sanzi89 (#1308) üzenetére


Goose-T
veterán

Ha csak egy sor van, ami kétszer van benne, akkor kitörlöd mindkettőt, aztán létrehozol egy új sort ugyanazokkal az adatokkal, csak egyszer. Ha sok duplázást kell kiszűrni, akkor meg új tábla kell, nem tudom, hogy az Access támogatja-e a SELECT INTO utasítást, ha igen, akkor így át tudod tölteni az adatokat duplázás nélkül egy új táblába:

select distinct * into UJ_TABLA from REGI_TABLA

Aztán ha megvan, akkor a régi tábla törölhető, az új táblát meg átnevezed a régi nevére. Ha nem megy SELECT INTO, akkor létrehozol egy új táblát a régi mintájára ugyanazzal a mezőkkel, és nyomsz egy ilyet:

insert UJ_TABLA select distinct * from REGI_TABLA

Aztán megint mehet az átnevezés.

Rockbandám: https://fb.me/scharlotterhodes *** Gitárelektronikai műhelyem: https://www.fb.me/goosetgitar

(#1313) bpx válasza sanzi89 (#1306) üzenetére


bpx
őstag

duplikált (vagy akár annál többször ismétlődő) sorok törlése (egy megtartása) a'la Oracle:

DELETE FROM tabla1
WHERE rowid NOT IN
(SELECT MIN(rowid) FROM tabla1
GROUP BY oszlop1, oszlop2, oszlop3, ... );

na most az Access-hez semmi közöm nincs, szóval Google
ha ott is van rowid "metaoszlop", akkor nyert ügy
ha nincs akkor mondjuk legegyszerűbb egy SELECT DISTINCT amit már írtak

[ Szerkesztve ]

(#1314) sanzi89 válasza bpx (#1313) üzenetére


sanzi89
addikt

Eszerint nincs rowid Access-ben.

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1315) sanzi89 válasza Sk8erPeter (#1307) üzenetére


sanzi89
addikt

Ezek szerint mégse annyira egyértelműen könnyű a dolog... :U

@Goose-T
Köszi, szerintem valami ilyesmi lesz. Kitöröm őket, aztán beszúrok egy sort. Nem elegáns, de működik legalább.

[ Szerkesztve ]

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1316) Sk8erPeter válasza sanzi89 (#1315) üzenetére


Sk8erPeter
nagyúr

Nem tudom, mi a frászt vársz, amikor az elején nekünk kell helyetted kitalálni az infókat, belőled meg harapófogóval kell kihúzni... :W
Ha szarul teszed fel a kérdést, talán ne lepődj meg, hogy nem kapsz egyből konkrét választ. És ne forgasd a szemeidet, ha már te kérsz segítséget... :U

Sk8erPeter

(#1317) martonx válasza sanzi89 (#1315) üzenetére


martonx
veterán

Talán ha értelmesen kérdeznél, értelmes válaszokat kapnál.

Én kérek elnézést!

(#1318) sanzi89 válasza martonx (#1317) üzenetére


sanzi89
addikt

Értelmes válasz, hmmm.... Kérdésem:
"...SQL lekérdezéssel..."

Válaszod:
"...Access grafikus tábla megjelenítőjében jobb gomb..."

Van még kérdésed?

@Sk8erPeter
Jó, le kellett volna írom, hogy milyen adatbázis, ebben igazad van, de azért a Te válaszaid se voltak annyira hasznos infók. Szintén, SQL lekérdezés, Delphi-n belül, tök logikus, hogy használjak egy új adatbázis kezelő programot. Leírtam, hogy van benne 2 sor, ami dupla, erre megkérdezed, hogy mindegyik vagy csak 2. Leírom, hogy nincs kulcs, nincs azonosító, minden sor ugyan azt tartalmazza, erre beírod, hogy id szerint töröljek. Csak forgatni tudom a szemem...

Egyébként a segítség kérésben igazad van, bocs érte, csak amilyen lekezelően írtad az első kommentedet, arra akartam reagálni.

[ Szerkesztve ]

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1319) bpx


bpx
őstag

szerintem a kérdéssel semmi gond nem volt, a válaszok viszont annál cifrábbak voltak ;]
SQL-t kért => grafikus tool
meg delete .. where id = .., miközben leírta hogy minden érték egyezik és nincs semmi kulcs :P

(#1320) sanzi89 válasza bpx (#1319) üzenetére


sanzi89
addikt

Köszönöm a megerősítést, hogy csak nem vagyok teljesen hülye.

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1321) Sk8erPeter válasza sanzi89 (#1318) üzenetére


Sk8erPeter
nagyúr

Abban igazad van, hogy írtad, hogy nincs kulcs, ez őszintén szólva kissé számomra elsikkadt a hsz.-ek után. DE ilyen alapon - ha már ilyen jól belejöttünk az egymásba való belekötésbe :DDD - attól még tartozhat valami olyan mező is a táblához, ami alapján egyértelműen lehet azonosítani az adott sort (még ha nem is ténylegesen KULCS az adatbázis szintjén!!), de erről sem írtál SEMMIT, tehát fogalmunk nem lehetett az adatbázis-szerkezetedről sem.
Delphi? Mutasd már meg, itt hol írtál ilyenről egyáltalán: [link]. És ha Delphi, akkor mi van? Ez a rész a lényeg szempontjából miért érdekes? Attól még miért ne lehetne akár grafikus alapú adatbázis-kezelőből módosítani az adatbázist? Mi köze a kettőnek egymáshoz?
A sok-sok (!!) duplikációval kapcsolatban meg hadd idézzelek:
"Van benne 2 sor, ami totálisan megegyezik, minden mező értéke ugyan az."
Amit itt írsz, azt jelenti, összesen 2 sorral van problémád. Ebből tehát rohadtul nem derül ki az, amit a későbbiekben írtál le, hogy SOK duplikáció van, ergo NEM csak két sor.

"Van egy táblám, benne adatok."
Semmi információ arról, hogy ez Access lenne, és milyen adatokról van szó (értsd: adatbázis-struktúra, esetleg példa).

Idióta visszakérdezgetések és a mostani, tök felesleges veszekedés és e-pénisz-villogtatás elkerülése érdekében pl. feltehetted volna a kérdést úgy (csak egy példa), hogy "van egy Access-táblám, semmilyen mező nem azonosítja egyértelműen a sorokat (nincs azonosítójuk), és elég sok sor duplikálva van. Milyen módon tudnám megszüntetni a duplikációt?
Struktúra:
ABCDE
Egy konkrét példa egy sorra (ilyenből van kettő):
XYZ"

======

(#1319) -Zeratul- : ja, nyilván a kérdés tökéletes volt. Azért olvasd el a fentit, hogy hogyan lehetett volna elkerülni, hogy most itt ilyen óvodás hőzöngés alakuljon ki.

Sk8erPeter

(#1322) sanzi89 válasza Sk8erPeter (#1321) üzenetére


sanzi89
addikt

Rendben, legközelebb igyekszem pontosabbnak lenni.

[ Szerkesztve ]

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1323) rum-cajsz


rum-cajsz
őstag

egyre több az indok az access adatbázisod kidobására, miért nem használod ki? ;)

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#1324) sanzi89 válasza rum-cajsz (#1323) üzenetére


sanzi89
addikt

Óh, olyan szívesen megtenném, hogy hajaj, de erről sajnos nem én döntök.

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1325) martonx válasza rum-cajsz (#1323) üzenetére


martonx
veterán

mondjuk elnézve a problémákat (amellett, hogy access ellenes vagyok), pont nem az access maga a probléma, hanem egyrészt szarul lett felépítve a használt adatbázis, másrészt a program is szarul lett megírva ami ilyen duplikációkat hoz létre bele.
Ezek a hibák, ha béna a programozó, pont ugyanígy megmaradnak, bármilyen db motort is használjon az ember.

Én kérek elnézést!

(#1326) sztanozs válasza sanzi89 (#1324) üzenetére


sztanozs
veterán

Beszúrsz egy plusz autonumber típusú mezőt és utána mát tudod törölni csak az egyiket...

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1327) sanzi89 válasza sztanozs (#1326) üzenetére


sanzi89
addikt

Ez nem jó, mivel nem módosíthatom ennyire az eredeti táblát.

A megoldás az lett, hogy COUNT-tal megszámoltam, hány ugyanolyan sor van, ha több, mint 1, akkor eltároltam az adatokat változókba, végrehajtottam a törlést, ami így mindkét bejegyzést törölte, aztán egy sima INSERT-tel beillesztettem 1 sort a régi adatokkal. Nem elegáns, de működik.

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1328) rum-cajsz válasza martonx (#1325) üzenetére


rum-cajsz
őstag

Igen, pont ezért jutott eszembe, hogy itt lenne az indok az adatbázis normalizálására, és egyúttal valami normálisabb adatbázis bevezetésére.
De mint írja a kollega, ez nem járható út.

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#1329) lakisoft válasza martonx (#1227) üzenetére


lakisoft
veterán

Kedves Uram,
Nem helyes amit írtál MSSQL alatt.

update table1
set valami = t2.valami
from table1 t1
join table2 t2 on t1.id = t2.id

helyette:

update t1
set valami = t2.valami
from table1 t1
join table2 t2 on t1.id = t2.id

:R :R :R

(#1330) Sk8erPeter válasza lakisoft (#1329) üzenetére


Sk8erPeter
nagyúr

"Kedves Uram,"
Mi van veled :D

Feltételezem, kézzel gyorsban bepötyögött kód volt, de ilyen alapon bele lehetne kötni a
set valami = t2.valami
részbe is, mert az lehetne pl.
set t1.valami = t2.valami
:K

Sk8erPeter

(#1331) lakisoft válasza Sk8erPeter (#1330) üzenetére


lakisoft
veterán

Morcos voltam :)

(#1332) sanzi89


sanzi89
addikt

Újabb gondom volna. Van egy TXT, benne mindenféle adat. Van egy ilyen:

SZ'MITÓGÉP+NYOMTATÓ

Ezt kellene beletenni egy VARCHAR típusú mezőbe. Mindig elszáll error-ral. Ha kicserélem a ' jelet mondjuk egy A betűre, akkor már megeszi. De nem csak itt, máshol se teszi be a ' jel miatt. Az adatot nem szeretném módosítani, egy az egybe tolja fel egy táblába a TXT tartalmát. Mit lehet ezzel csinálni, hogy megegye a ' jelet? :F

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1333) Goose-T válasza sanzi89 (#1332) üzenetére


Goose-T
veterán

Duplázd meg a txt-ben az aposztrófokat, úgy már be fogja venni. Hogy jobban értsd: cseréld ki ezeket: ' erre: '' .

Szerk.: ne a hagyományos magyar kettős idézőjelre cseréld ("), hanem a szimpla aposztrófból tegyél kettőt egymás után(''), és azt egynek fogja venni az SQL.

[ Szerkesztve ]

Rockbandám: https://fb.me/scharlotterhodes *** Gitárelektronikai műhelyem: https://www.fb.me/goosetgitar

(#1334) sztanozs válasza sanzi89 (#1332) üzenetére


sztanozs
veterán

Ne konkatenált SQL beillesztést használj, hanem parametrizáltat. Azzal megeszi a "speciális" karaktereket is...

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1335) sanzi89 válasza sztanozs (#1334) üzenetére


sanzi89
addikt

A fenti kommentek alapján már próbáltam, de Delphi alatt valahogy sehogy nem bír összejönni a parametrizált SQL beillesztés. Természetesen most sem... Itt tartok:

SQLCode:='INSERT INTO sap.eszkoz VALUES ('+slTagok[1]+','+slTagok[2]+','+slTagok[3]+','''+slTagok[4]+''','''+slTagok[5]+''', ''szam'','''+slTagok[7]+''',TXT50)';
ZQuery1.SQL.Clear;
ZQuery1.ParamByName('TXT50').AsString := slTagok[8];
ZQuery1.SQL.Add(SQLCode);
ZQuery1.ExecSQL;

A hiba az, hogy TXT50 not found...

@Goose-T
Köszi, az ötlet jó, de ha meg lehet oldani, akkor módosítás nélkül szeretném.

[ Szerkesztve ]

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1336) Goose-T válasza sanzi89 (#1335) üzenetére


Goose-T
veterán

Akkor Delphi-ben duplázd az aposztrófokat. Mi ezen a bonyolult?

Rockbandám: https://fb.me/scharlotterhodes *** Gitárelektronikai műhelyem: https://www.fb.me/goosetgitar

(#1337) sztanozs válasza sanzi89 (#1335) üzenetére


sztanozs
veterán

Tegyél egy kettőspontot a TXT50 elé a Query-ben (ParamByName-ben nem kell): [link]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1338) sanzi89 válasza sztanozs (#1337) üzenetére


sanzi89
addikt

Oh, köszi! :R

Reggel 8 óra bújom ezt a szart, már jojózik a szemem, és egyszerűen nem vettem észre a példa kódban a kettőspontot. :W

@Goose-T
Nem bonyolult, csak plusz, felesleges művelet. Ha nem lehetne másképp megoldani, természetesen így csinálnám, de ezzel a paraméteres dologgal talán egyszerűbb.

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1339) sztanozs válasza sanzi89 (#1338) üzenetére


sztanozs
veterán

Az volna az igazi, ha mindent paraméterrel illesztenél be. Akkor nem kellene az aposztrofozás a string mezőknél és az összes lehetséges string kódolási hiba kiszűrhető volna...

Erről beszélek :DDD

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#1340) sanzi89 válasza sztanozs (#1339) üzenetére


sanzi89
addikt

Köszönöm a jó tanácsokat, igyekszem megfogadni! :R

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#1341) weiss


weiss
addikt

Sziasztok! Tudnátok ajánlani valami könyvet, amiből elsajátíthatóak a DB kezelés alapjai?

I did nothing, the pavement was his enemy!

(#1342) bpx válasza weiss (#1341) üzenetére


bpx
őstag

melyik adatbáziskezelő, és milyen megközelítésből (fejlesztői vagy üzemeltetői)?

(#1343) weiss válasza bpx (#1342) üzenetére


weiss
addikt

90% üzemeltető + 10 % fejlesztés. Oracle + MS. De perpill csak nagyon alapok vannak. Nem tudom ismered-e, de CCNA vizsgára vannak szuper könyvek, amikből el lehet sajátítani nemcsak a Cisco berendezéseket, hanem a hálózatokat is. Na, szóval ilyen kellene adatbázisokra, ha létezik :B

I did nothing, the pavement was his enemy!

(#1344) kispx válasza weiss (#1343) üzenetére


kispx
addikt

Oracle + Fejlesztői megközelítés:

Ebben a témában a Gábor András, Juhász István - PL/SQL programozás Alkalmazásfejlesztés Oracle 10g-ben című könyvek ajánlom.

A könyv egy alap SQL tudást (select, insert...) azért igényel.

(#1345) Lacces


Lacces
őstag

Sziasztok!

Lehetséges saját gépen localhoston Oracle adatbázist futtatni? Illetve van szabadon letölthető adatbázis?
Vagy valamilyen ingyenes online hely, ahol az Oracle SQL-t tudnám gyakorolni. :R

[ Szerkesztve ]

(#1346) kispx válasza Lacces (#1345) üzenetére


kispx
addikt

Express Edition-t lehet localhostra telepíteni.

(#1347) Lacces válasza kispx (#1346) üzenetére


Lacces
őstag

Köszi, adatbázist tudsz ajánlani tanulásra? Meg milyen developer programot?

Mindenkinek, mysql:
MySQL esetén, egy friss adatbázis van, hogyan lehet elérni, hogy az autoincreamenttel létrehozott id-ket úgymond újra rendezze. Létrehoztam az első rekordot, aminek egy 1-et adott. Létrejött közben a második is, annak 2-et, de létrejött még a 3. és 4.-ik is amit töröltem, és most ismét felvittem egy rekordot, és annak az id-ja már 5.
És azt szeretném, hogy ne ezek az ID-k legyenek benne: 1,2,5, hanem, 1,2,3.
Ha kitörlök egy elemet, akkor az ID-kat újrarendeze, és növekvőbe rakja.
Vagy ez felesleges?
Meglehet azt valahogy oldani, hogy újra "kiossza/rendezze" az id-kat, (nem találom a megfelelő szót)?

(#1348) kispx válasza Lacces (#1347) üzenetére


kispx
addikt

Tanulásra egyetemen ezeket használtuk (pontosítva az első kettőt, az utolsó kettő új lehet mert nem találkoztam velünk):

1
2
3
4

(#1349) fordfairlane válasza Lacces (#1347) üzenetére


fordfairlane
veterán

Elhajítod az id oszlopot, majd újra létrehozod.

x gon' give it to ya

(#1350) martonx válasza Lacces (#1347) üzenetére


martonx
veterán

miért zavar? Sokmilliárdig nőhet az id-d. 1-2 kimarad, na és?

Én kérek elnézést!

Útvonal

Fórumok  »  Szoftverfejlesztés  »  SQL kérdések (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.