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

MySQL - automatické snižování hodnoty

Neměli byste to dělat.
Nepoužívejte automaticky zvýšený jedinečný identifikátor jako pořadové číslo.
Slovo "unikátní" znamená, že identifikátor by měl zůstat na svém řádku navždy .

Mezi těmito čísly a výčtem není žádná souvislost.
Představte si, že chcete vybrat záznamy v abecedním pořadí. Kam by šla vaše drahocenná čísla? Databáze není jako uspořádaný seznam, jak si pravděpodobně myslíte. Nejedná se o plochý soubor s řádky uloženými v předem definovaném pořadí. Má úplně jinou ideologii. Řádky v databázi nemají žádné pořadí. A bude objednáno pouze ve zvolený čas, pokud to bylo výslovně nastaveno pomocí ORDER BY klauzule.
Také databáze by měla provést vyhledávání za vás. Můžete tedy říci, že s filtrovanými řádky nebo odlišným řazením nebude mít toto číslo automatického zvýšení absolutně nic společného se skutečnými pozicemi řádků.

Pokud chcete vyčíslit výstup - je to práce prezentační vrstvy. Stačí přidat počítadlo na straně PHP.

A znovu:tato čísla měla identifikovat určitý záznam. Pokud toto číslo změníte, svůj záznam už nikdy nenajdete.

Vezměte si například tuto stránku. Stack Overflow označuje své otázky takovým číslem:

Představte si tedy, že jste uložili adresu této stránky do záložky. Nyní přichází Jeff a přečísluje celou databázi. Stisknete záložku a dostanete se na jinou otázku. Celý web by se stal hrozným nepořádkem.

Pamatujte:Přečíslování jedinečných identifikátorů je zlo!



  1. Úvod do fulltextového vyhledávání v MariaDB

  2. Jak vložit data z jedné databázové tabulky do jiné databázové tabulky v Mysql

  3. Laravel pomocí klauzule where v metodě withCount

  4. MariaDB JSON_VALID() Vysvětleno