Autor Zpráva
xlifer
Profil
Je možné vložit "smazaný" záznam z db na stejnou pozici (resp. totožné ID) u tabulky kde je primární klíč ID generován přes auto_increment ?

Příklad:

INSERT INTO tabulka VALUES('', 'data'); // bude přiděleno ID = 1;
INSERT INTO tabulka VALUES('', 'data); // bude přiděleno ID = 2;
INSERT INTO tabulka VALUES('', 'data); // bude přiděleno ID = 3;

atd.

Následně dojde ke smazání záznamu ID = 2.

Je možné tento záznam znovu vložit pod ID = 2,
když už je počítadlo auto_incrementu nastaveno na ID = 3 (resp. +1 =4)
a musí být pro dalši vkladání zachované, aby správně "auto inrementovalo" ?
TomášK
Profil
xlifer:
Nebylo by jednodušší to vyzkoušet než sepisovat dotaz? :-) Pokud si dobře pamatuju, tak to jde bez problémů, auto_increment se použije jen pro inserty, které nemají specifikované id.
jenikkozak
Profil
xlifer:
Používat smazané id je považováno spíše za zbytečnost.
xlifer
Profil
TomášK:

To jsem zkoušel, ale vždy mi to vytvořilo nový záznam, tak jsem dělal někde něco špatně... A pokud bych zavolal INSERT s ID, které je vyplněno a již existuje, tak se to zachová jak? Vytvoří automaticky nové ID nebo skončí chybou?
xlifer
Profil
jenikkozak:

Ano, to je pravda, ale v případech kdy není žádná další vazba okolních tabulek by to němělo ničemu vadit.
jenikkozak
Profil
xlifer:
ale v případech kdy není žádná další vazba okolních tabulek by to němělo ničemu vadit.
Tak když na tom tak trváš, tak si to udělej, já osobně ti snad v cestě nestojím.
Joker
Profil
xlifer:
Ano, to je pravda, ale v případech kdy není žádná další vazba okolních tabulek by to němělo ničemu vadit.
Jestli se ten identifikátor někde používá pro identifikaci daného záznamu, je potenciálně nebezpečné ho recyklovat.
Jestli má záznam identifikátor který se nikde nepoužívá, celý ten sloupec bych zrušil, je zbytečný.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: