Autor Zpráva
Drup
Profil *
Chtěl bych se zeptat jestli, když vymažu zapis v DB třeba s id 15, tak jestli se potom vytvoří zaněj jiný záznam s id 15, když tam se tam budou v kládat nový záznamy? Ptám se proto, že mě to v DB nahrazuje a já bych potřeboval, aby když smažu nějaké id tak už se nikdy nevytvoří.
ShiraNai7
Profil
Musíš ten sloupec id nastavit s indexem PRIMARY a vlastností auto_increment.
Jostram
Profil *
Jestli používáte vlastnost AUTO_INCREMENT, tak se náhrada nevytvoří - leda byste vynuloval počítadlo.
Drup
Profil *
Takto?
CREATE TABLE `table` (
  `id` bigint(20) NOT NULL auto_increment,
  `text` text collate utf8_general_ci NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `text` (`text`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
_es
Profil
Jostram:
Jestli používáte vlastnost AUTO_INCREMENT, tak se náhrada nevytvoří - leda byste vynuloval počítadlo.

Aj pri AUTO_INCREMENT sa len vytvára nový záznam s id vyšším o 1 ako posledný vkladaný záznam.
Ak je požadované "zapĺňanie dier" po zmazaných záznamoch, tak si ho treba vytvoriť nejakým vlastným spôsobom - dá sa vkladať aj záznam so špecifikovaným id, po detekovaní tej diery.
Drup
Profil *
_es:
Tak jak bych to mohl pořádně ošetřit, aby když tam bude díra (50, 51, 60, 61, 62 ...) a já budu vytvářet nové záznami, tak se nikdy nevytvoří chybějíci id ale o 1 vyšší něž to posledni?
_es
Profil
Drup:
jak bych to mohl pořádně ošetřit, aby když tam bude díra (50, 51, 60, 61, 62 …) a já budu vytvářet nové záznami, tak se nikdy nevytvoří chybějíci id ale o 1 vyšší něž to posledni?
Musíš vytvárať záznam s id rovným hodnote najmenšieho možného id. Teda najprv to id zistiť a potom vytvoriť záznam s takým id.
Zdá sa mi, že sa to tu už niekedy riešilo, skús si to nájsť…
No musíš rátať s tým, že vkladanie záznamov bude potom pomalšie.
ShiraNai7
Profil
Drup:
Ano díry vzniklé smazanými záznamy se nevyplňují.

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:

0