sql >> Databáze >  >> RDS >> Mysql

Vložit do pole automatického zvýšení

Dobře, než dostanete odpověď na svou otázku, musím vás varovat před extrémně špatná praxe, kterou se tam snažíš dělat. Nechápejte mě špatně, mnozí se pokoušeli dělat to, co děláte vy, a tak to prostě nefunguje.

Vaše auto_incremented ID je primární klíč. Primární klíč se používá k jednoznačné identifikaci řádku v tabulce. A je to. Nemá žádný jiný zvláštní význam kromě toho.

Co to tedy pro vás znamená? To znamená, že vaše představa, že budete "rezervovat" 1 - 10k pro adminy, je špatná. proč je to špatné? Protože manipulujete s primárním klíčem. Nikdy byste neměli rozhodovat o tom, jaká by měla být hodnota primárního klíče, to je práce databází z mnoha důvodů (například konzistence). Další věc, proč je to špatné, je, že jste někoho omezili na pouhých 10 000 možných záznamů. Na druhou stranu, jak spočítáš, jaký je další záznam pro adminy? Co když jste zadali 1, 2, 3, 4 a poté smažete záznam s ID =3? co se stane potom? Jaká je vaše další hodnota v pořadí? 3 nebo 5?

Po tomhle byste pravděpodobně měli přehodnotit svou strategii. Proč nepřidat pole „isAdmin“, které vám řekne, zda správce něco zveřejnil nebo ne?




  1. existuje v ms-access funkce group_concat?

  2. Atomic MySQL transakce v Anorm

  3. Zakažte přihlášení root v phpMyAdmin

  4. Problémy s omezeními PostgreSQL