Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đặt (lại) id tăng tự động MySQL bắt đầu từ 1

Giả sử không có vấn đề khóa ngoại nào cần giải quyết, mã này sẽ thực hiện điều đó:

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

Nếu có vấn đề về khóa ngoại, hãy đảm bảo rằng các ràng buộc của bạn được xác định như thế này trước bạn thực hiện cập nhật:

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

Khi tất cả hoàn tất, hãy thực thi điều này để sửa giá trị 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. Trường MySQL DATE với mặc định CURDATE (). KHÔNG PHẢI NGÀY

  2. MySQL chọn bản ghi 1 giờ trước hoặc mới hơn trên cột ngày giờ

  3. Kết nối cơ sở dữ liệu CakePHP Mysql bị thiếu hoặc không thể tạo

  4. Thiết kế cơ sở dữ liệu:hàng tồn kho và hệ thống bán hàng?

  5. Không thể tạo trình kích hoạt MySQL với đặc quyền TRIGGER trên 5.1.32