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

změnit auto_increment ve stejné tabulce pomocí poddotazu mysql

Analyzátor nepodporuje dílčí dotaz v místě, kde se jej pokoušíte použít.

Zde je výňatek ze zdroje MySQL, z sql/sql_yacc.yy:

create_table_option:
    . . .
    | AUTO_INC opt_equal ulonglong_num

Měli byste si přečíst, že AUTO_INCREMENT tabulka přijímá pouze jedno doslovné číslo, nikoli výraz, poddotaz nebo proměnnou nebo cokoli jiného. Takže jednoduše nemůžete nastavit AUTO_INCREMENT ve stejném příkazu, ve kterém uděláte SELECT MAX(id)+1 .

Ale to nemusíte.

MySQL nikdy nepřidělí automatické zvýšení ID menší než nejvyšší aktuálně uvedená hodnota v tabulce. Pokud tedy máte tabulku s hodnotou id 102, další přidělená hodnota bude nejméně 103.

Můžete se dokonce pokusit explicitně nastavit AUTO_INCREMENT=50, ale to se automaticky zvýší na MAX(id)+1.



  1. SQL:odstranění duplicitních hodnot z výběru na základě 2 polí

  2. Open source nástroj pro vytváření diagramů ER pro mysql

  3. Konverze se nezdařila při převodu hodnoty varchar 'simple,' na datový typ int

  4. Go SQL driver get interface{} hodnoty sloupce