Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Spraw, aby identyfikator auto-inkrementacji MySQL (re) zaczynał się od 1

Zakładając, że nie ma problemów z kluczami obcymi do rozwiązania, ten kod to zrobi:

set @id:=0;
update mytable
set id = (@id := @id + 1)
order by id;

Jeśli występują problemy z kluczami obcymi, upewnij się, że ograniczenia są zdefiniowane w ten sposób przed wykonujesz aktualizację:

ALTER CHILD_TABLE ADD CONSTRAINT
FOREIGN KEY MYTABLE_ID REFERENCES MYTABLE
ON UPDATE CASCADE; -- This is the important bit

Po zakończeniu wykonaj to, aby poprawić wartość auto_increment:

SELECT MAX(ID) + 1 FROM MYTABLE; -- note the output
ALTER TABLE MYTABLE AUTO_INCREMENT = <result from above>;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wybrać najnowszy zestaw datowanych rekordów z tabeli mysql?

  2. Przesyłanie obrazu PHP do MySQL nie działa

  3. MySQL INSERT SELECT — Zduplikowane wiersze

  4. Czy MySQL indeksuje wartości NULL?

  5. Jaki jest najłatwiejszy sposób ustalenia, czy użytkownik jest online? (PHP/MYSQL)