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

Làm cách nào để cập nhật bảng để thêm khóa chính và cập nhật tất cả các hàng hiện có với ID tăng dần?

Sau khi thêm cột ID mới (chưa đặt làm khóa chính và chưa bật tăng tự động), hãy chạy:

SET @index = 1;
UPDATE tablename SET ID = (@index:[email protected]+1);

Điều này đặt một giá trị ID tăng dần bắt đầu từ 1 vào mỗi hàng hiện có của bạn, do đó giải quyết vấn đề khóa trùng lặp mà bạn sẽ gặp phải nếu bạn cố gắng chèn một cột khóa chính mới sau khi dữ liệu đã được nhập.

Sau khi hoàn tất, bạn có thể đặt cột ID làm khóa chính với số tự động.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để đối sánh các bản ghi được liên kết với một tập hợp cụ thể của các bản ghi khác?

  2. MySQL select / insert / update, thứ tự cột có quan trọng không?

  3. Có cần thiết phải viết ROLLBACK nếu các truy vấn không thành công không?

  4. Cách CHÈN nếu hàng không tồn tại (UPSERT) trong MySQL

  5. Cân bằng tải MySQL &MariaDB với ProxySQL