Předmět Autor Datum
Akú databázu používaš? Nestačilo by niečo ako select max(stlpec_autoinc)? V MS SQL je tuším funkcia…
pme 05.12.2011 18:47
pme
Štandardný Paradox 7 myslím.
msx. 05.12.2011 20:33
msx.
Pokud pres BDE, tak se zkus podivat na nejake API funkce DBIneco. jejich popis je v helpu k BDE Ale…
Jan Fiala 06.12.2011 12:51
Jan Fiala
Povedzme, že máš nejaké meno a po jeho pridaní sa v tabuľke vytvorí záznam, kde sa v dvoch stĺpcoch…
msx. 07.12.2011 12:55
msx.
Autoinc pouzivam v pripade, kdy potrebuju nejaky jedinecny index. Ale jakmile to chci na propojeni t…
Jan Fiala 07.12.2011 14:30
Jan Fiala
Myslím, že rozumiem. Budem vedieť do budúcna. Toto je program v Delphi, ktorý som robil takmer pred…
msx. 07.12.2011 16:04
msx.
Priklad: mam 2 tabulky - hlavicku a radky, ktere jsou provazane pres ID mam 2 sady takovych tabulek,…
Jan Fiala 08.12.2011 08:22
Jan Fiala
Jinak posledni autoincrement muzes zjistit SQL dotazem, pripadne pres BDE API Asi bych si napsal fun…
Jan Fiala 08.12.2011 08:28
Jan Fiala
Tak je to asi najjednoduchšie. Asi to aj tak spravím. A ďakujem za vysvetlenie v príklade. Vyzerá t… poslední
msx. 15.12.2011 23:52
msx.

Povedzme, že máš nejaké meno a po jeho pridaní sa v tabuľke vytvorí záznam, kde sa v dvoch stĺpcoch bude nachádzať jeho ID a to samotné meno. To ID je autoinc a je použité na prepojenie s inou tabuľkou. Síce robím hlavne s MySQL a PHP, ale tam autoincrement je na prepojenie tabuliek použitý takmer vždy. Aký má potom autoinc význam, ak sa nemá používať? Potom by som to videl jedine na mazanie záznamov podľa jedinečného autoinc ID.

Edit: Možno by si mohol napísať nejaký článok o návrhu databáz s ohľadom na autoinc. Ja viem len to čo ma naučila prax.

Autoinc pouzivam v pripade, kdy potrebuju nejaky jedinecny index. Ale jakmile to chci na propojeni tabulek, uz si vytvarim vlastni ID.

v okamziku, kdybys chtel takove tabulky zpracovavat - sehravat, importovat apod. uz budes mit problem, protoze to budes muset osetrovat rucne - nezustava ti zachovane propojeni hlavicka-polozky

Myslím, že rozumiem. Budem vedieť do budúcna. Toto je program v Delphi, ktorý som robil takmer pred 5 rokmi, keď som sa učil SQL a na to, že som vtedy vedel o SQL len to čo ma naučila knižka Vreckový sprievodca SQL (bol tam dosť kvalitne popísaný aj návrh databázy), či ako sa to volalo, tak som s tým nadmieru spokojný. Samozrejme dosť mi radili aj tu na poradni. Teraz už nemá význam ten program meniť (dnes by som ho napísal určite lepšie).

Ale keď sa tak zamýšľam nad tým, čo si napísal, tak ručne to musím ošetrovať aj vtedy, ak by som si vytvoril vlastné ID, pretože v prípade importu by mohlo ID byť duplicitné, takže asi celkom nerozumiem.

Priklad:
mam 2 tabulky - hlavicku a radky, ktere jsou provazane pres ID
mam 2 sady takovych tabulek, ktere potrebuju sloucit.
Pak musim vzit hlavicku, zapamatovat si puvodni ID, pridat hlavicku, zjistit nove ID, vybrat radky podle puvodniho ID a zapsat radky s novym ID a takto to opakovat pro vsechny hlavicky a souvisejici radky

Pokud budu mit vlastni ID, jsem schopny jednoduse si zjistit jednoduchym dotazem, zda nedojde k duplicitam.
Pokud budu dopredu vedet, ze budu importovat data, zajistim si predem, aby ID byly na lokalitach odlisne.
Pokud to nebudu vedet, muzu je opet hromadne jednoduchym updatem zmenit (napr. pricist 100000) a pak tabulky najednou naimportovat.

Rozdil:
autoinc se prideluje v cilove tabulce, takze to musis osetrovat pri zapisu do tabulky
vlastni ID si ridim sam a vlozeni zaznamu do tabulky mi nic samo nemeni.

Zpět do poradny Odpovědět na původní otázku Nahoru