sql >> Databasteknik >  >> RDS >> Mysql

MYSQL &innoDB ändrar dynamiskt AUTO_INCREMENT av en tabell

ALTER TABLE måste ha bokstavliga värden i sig när påståendet tolkas (dvs. vid förberedelsetid).

Du kan inte lägga in variabler eller parametrar i satsen vid analys, men du kan sätta variabler i satsen före analysera tid. Och det betyder att du använder dynamisk SQL:

SET @new_index = (SELECT MAX(id) FROM sales );
SET @sql = CONCAT('ALTER TABLE sales AUTO_INCREMENT = ', @new_index);
PREPARE st FROM @sql;
EXECUTE st;


  1. PDO-motsvarigheten till mysql_num_rows eller mssql_num_rows

  2. Decimal datatyp är avrundning av värdena

  3. Laravel SQLSTATE[23000]:Överträdelse av integritetsbegränsning:1452 Kan inte lägga till eller uppdatera en underordnad rad

  4. Är det möjligt att skapa en kolumn med UNIX_TIMESTAMP standard i MySQL?