Importált adatok rendszerének megtartása hogyan?

Importált adatok rendszerének megtartása hogyan?
2012-08-18T09:35:16+02:00
2012-08-22T09:02:33+02:00
2022-11-26T15:50:41+01:00
Gülredy
excel táblából exportálok néhány adatot makró segítségével az adatbázis megfelelő táblájába.
A gondom az, hogy az adatbázisban az exportált adatok abc sorrendben lesznek tárolva, nem pedig aszerint ahogyan excelben vannak, nekem pedig fontos lenne úgy tárolni őket ahogyan ott szerepelnek.
A neten amit találtam megoldást rá, azt írták hogy "non-clustered index"-et kell használni. Ezt hogyan tudom beállítani?

Itt az sql kód amit használok:
create table tabla1 ( id serial, nev varchar(100) unique not null ); create table tabla2 ( id serial, nev varchar(100) unique not null ); create table tabla3 ( tabla1id integer not null references tabla1 (id), tabla2id integer not null references tabla2 (id), mezo1 double precision, mezo2 double precision, ido timestamp default current_timestamp );
Mutasd a teljes hozzászólást!
Bocsi, de lazits egy kicsit, majd gondold végig, mit is szeretnél.
Van egy excel táblázatod, annak tartalmát importálod mysql-ba, ott teszel veszel valamit az adatokkal, majd visszamásolnád az excel-be azzal a kikötéssel, hogy a sorrendisége ne változzon az eredeti, excel-ben tárolthoz képest.
Csak ismételni tudom magam, hogy ez esetben tök mindegy a tárolás mikéntje a mysql-ban. Viszont fontos, hogy tudd miként volt tárolva az excel-ben.
Ebben segít az autoincrement tip. oszlop (persze, csak akkor ha létrehozod, neve legyen pl. autoinc) amivel a sorrendiséget rögzítheted.
Amikor visszaküldöd az excel-nek mysql-ból a sorokat akkor a
select * from valami order by autoinc
biztosítja az elvárásodat.
Mutasd a teljes hozzászólást!

  • nekem pedig fontos lenne úgy tárolni őket ahogyan ott szerepelnek

    Bocsi, de szerintem tök mindegy miként tárolja, néked a megjelenítés lehet fontos, azt pedig a megfelelő sort-tal (order by) elérheted.
    Mutasd a teljes hozzászólást!
  • Vegyél fel a táblába egy sorrend nevű mezőt, és abba ird bele, hogy hányadik sor az excel-ben. Aztán ezen mező szerint order by a lekérdezés.
    Indexet pedig célszerű rá rakni.

    Azt, hogy az adatbázis motor milyen 'sorrendben' tárolja az adatokat, nem definiált.
    Mutasd a teljes hozzászólást!
  • És ha felveszel egy autoincrement mezőt és aszerint listázol?
    Mutasd a teljes hozzászólást!
  • Időközben rájöttem hogy nem a mysql-ben kell kiokoskodni, hanem az excel-ben. Mert ott könnyebb (VBA-ban dolgozom) importáláskor megadni egy egyszerű order by id parancsot!

    De azért ha valakinek van valami megoldása arra, hogyha az excelből importálok egy sql táblába adatot, akkor az ugyan abban a módban legyen tárolva, azért hálás lennék mivel nem kellene még ilyen apróságokra is figyelnem!

    Vagy ha valaki tudja hogy hol tudom ezt a "non-clustered index"-et beállítani vagy állítani mySQL 5.1-ben annak megköszönném, (és adnám a pontot)
    Mutasd a teljes hozzászólást!
  • Szvsz ezek automatikusan kapnak "non-clustered index"-et (Innodb esetén).
    tabla1id integer not null references tabla1 (id), tabla2id integer not null references tabla2 (id),
    Kipróbálod?
    Mutasd a teljes hozzászólást!
  • Beszélsz összevissza!

    nem a mysql-ben kell kiokoskodni, hanem az excel-ben.

    De! MySQL-ben kell kiokoskodni, ha onnan akarod kiolvasni az adatokat.
    ugyan abban a módban legyen tárolva

    Legfeljebb ugyanabban a sorrendben szeretnéd! Erre pedig jó az autoinc id mező, vagy a sorrend mező, amibe az Excel sor sorszámát irod.
    non-clustered index

    Ez azért kell, hogy gyorsabban kapd meg az adatokat.

    Mutasd a teljes hozzászólást!
  • Elnézést ha félreérthető voltam. Nem beszélek össze vissza.
    Excelben könnyebb volt megoldani, mert excelben (VBA) egy sql parancsot beillesztve a végére nyomom az order by-t és kész.
    Volt egy id mező ami autoincrement volt, de ettől függetlenül abc sorrendbe volt az adat, akkor is ha vissza adtam excelnek. Tehát az eredeti sorrend így is úgy is felcserélődött.

    Oké hogy a problémám megoldódott, de az eredeti kérdésemre még mindig nem kaptam választ.

    Riha
    Az a két sor "rendezett" is volt! Másik sorokra ezt hogyan tudom beállítani?
    Mutasd a teljes hozzászólást!
  • Bocsi, de lazits egy kicsit, majd gondold végig, mit is szeretnél.
    Van egy excel táblázatod, annak tartalmát importálod mysql-ba, ott teszel veszel valamit az adatokkal, majd visszamásolnád az excel-be azzal a kikötéssel, hogy a sorrendisége ne változzon az eredeti, excel-ben tárolthoz képest.
    Csak ismételni tudom magam, hogy ez esetben tök mindegy a tárolás mikéntje a mysql-ban. Viszont fontos, hogy tudd miként volt tárolva az excel-ben.
    Ebben segít az autoincrement tip. oszlop (persze, csak akkor ha létrehozod, neve legyen pl. autoinc) amivel a sorrendiséget rögzítheted.
    Amikor visszaküldöd az excel-nek mysql-ból a sorokat akkor a
    select * from valami order by autoinc
    biztosítja az elvárásodat.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd