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

Proveďte automatické zvýšení vyplnění dříve smazaného čísla

Nechcete pak používat sloupec s automatickým přírůstkem. Pokud chcete vyplnit mezery, nastavte jej na sloupec int a zpracujte logiku v uloženém proc nebo insertu.

UPRAVIT:

Protože se jedná o sloupec typu int, můžete je seřadit číselně. Stačí provést SELECT Ids FROM Table Order By Ids získat všechna ID a zkontrolovat mezery ve vrácené datové sadě.

Pravděpodobně existuje hladší způsob, jak to udělat, ale můžete zacyklit výsledky pomocí kurzoru a porovnat je s INT proměnná, která se v průběhu cyklu zvyšuje. Když najdete mezeru (žádná shoda) - přerušte smyčku a použijte tento INT hodnotu jako INSERT id.

Nebudu psát váš kód za vás, ale to jsou některé kroky, které vás přivedou správným směrem. Měl by to být opravdu základní kousek programování, který byste měli zvládnout.

Doufám, že to pomůže.

ÚPRAVA #2:

Jak již poznamenali ostatní, nejlepším krokem je nechat mezery. Pokud na stole není nějaká čepice co do délky a ID MUSÍ být 1-30 (divné), nechte to být. Vyplňování mezer nemá žádný přínos.

ÚPRAVA #3:

Ještě jedna věc, kterou je třeba zvážit:pokud opravdu musíte z nějakého důvodu ponechat 1-30, nemažte své řádky. Přidejte sloupec, abyste označili každý řádek jako aktivní nebo ne, a poté pouze aktualizujte řádky, které jsou neaktivní, když potřebujete, a poté je označte jako aktivní. To je VELMI otřepané, ale váš požadavek je poněkud otřepaný, takže...



  1. Jak přidáte sloupec NOT NULL do velké tabulky na serveru SQL?

  2. Závažná chyba PHP:Nezachycena výjimka PDO:nelze najít ovladač

  3. Jak zálohovat databázi Chamilo LMS MySQL

  4. Jak mohu vybrat posledních 5 řádků v tabulce bez řazení?