Tôi có một bảng có cột tăng tự động. Tôi cần phải thiết lập một trong những hàng 1000 và không bao giờ chạm vào nó một lần nữa, nhưng bây giờ mà tôi đã đặt nó đến 1000, tăng tự động giữ bắt đầu từ 1001 và từ chối bắt đầu tại 1. Có cách nào để có được xung quanh này?Đặt lại MySQL auto_increment khi một số lượng lớn đã tồn tại?
Trả lời
Câu trả lời đơn giản và ngắn gọn: bạn không thể thực hiện việc này.
Nếu có thể, điều gì sẽ xảy ra nếu bạn bắt đầu tăng tự động ở mức 1 và chèn 1000 hàng? Không thể chèn lần cuối do khóa "trùng lặp".
Nếu bạn phải có mục nhập được xác định trước, với id không bao giờ thay đổi và dễ nhớ, tại sao bạn không sử dụng 0 cho điều đó? Hoặc, nếu bạn thực sự cần sử dụng 1000, vấn đề với việc cho phép các cột khác bắt đầu ở 1001 là gì?
Anh ta không nên nhưng anh ta không thể. Xem câu trả lời của tôi. –
điều này là ajreal chỉnh sửa câu trả lời của tôi, tôi đã viết "không thể" - và bây giờ tôi quay trở lại chỉnh sửa đó – oezi
Bạn không thể:
Để thay đổi giá trị của bộ đếm AUTO_INCREMENT để được sử dụng cho hàng mới, thực hiện điều này:
ALTER TABLE t2 AUTO_INCREMENT = giá trị;
Bạn không thể đặt lại bộ đếm thành giá trị nhỏ hơn hoặc bằng bất kỳ giá trị nào đã được sử dụng. Đối với MyISAM, nếu giá trị nhỏ hơn hoặc bằng giá trị tối đa hiện tại trong cột AUTO_INCREMENT, giá trị là đặt lại tối đa hiện tại cộng một. Đối với InnoDB, nếu giá trị nhỏ hơn giá trị lớn nhất hiện tại trong cột , không xảy ra lỗi và giá trị chuỗi hiện tại không bị thay đổi.
Bạn có thể sử dụng MS Access liên kết đến MySQL như bảng bên ngoài, và bạn có thể thay đổi giá trị lĩnh vực bảng tự động tăng từ MS Access thông qua bản sao dán từ Excel (lần đầu tiên, bạn cần phải sắp xếp các giá trị tăng tự động trong Excel).
Giả sử bạn không có ID hàng khác với 1000, bạn có thể chèn hàng vào dưới cùng của bảng, sau đó bạn chỉ có thể sử dụng lệnh update:
UPDATE table.column SET id = 1000 WHERE id = current_id;
Giả sử id là cột tự động thặng dư của bạn . Và current_id nên được thay thế bằng id mà hàng được chèn vào.
Bạn có thể sử dụng những điều khoản sau đây:
UPDATE tbl SET id=1000 WHERE id=current_id;
ALTER TABLE tbl AUTO_INCREMENT=1001;
- 1. Hibernate/MySQL Chèn số lượng lớn
- 2. Python + MySQL - Chèn số lượng lớn
- 3. Dừng MySQL Sử dụng lại ID AUTO_INCREMENT
- 4. Số lượng hàng dữ liệu tồn tại
- 5. cách AND và một số lượng lớn các mảng số?
- 6. Mysql - Thay đổi một cột thành AUTO_INCREMENT
- 7. Capybara: Cách xác nhận số lượng phần tử đã cho tồn tại
- 8. ERR_CONNECTION_RESET: Kết nối đã được đặt lại khi tải lên một tệp lớn
- 9. Cách chèn số lượng lớn vào MySQL bằng C#
- 10. Mysql UDF được cài đặt (nhưng không tồn tại?)
- 11. là SSIS chèn số lượng lớn giống như một SỐ LƯỢNG LỚN Chèn
- 12. Nhập số lượng lớn vào Redis
- 13. Xóa số lượng tệp lớn
- 14. Giới hạn của auto_increment (số nguyên) trong mysql
- 15. Lặp lại một số lượng lớn các tệp trong một thư mục
- 16. oracle số lượng lớn chèn
- 17. Gửi thư đến số lượng lớn người
- 18. Scala thừa trên một số lượng lớn đôi khi bị treo và đôi khi không
- 19. SQLiteException: bảng đã tồn tại
- 20. Lỗi khi giao số lượng lớn để BigInteger
- 21. Truy vấn MySQL OUTFILE phàn nàn rằng "tệp đã tồn tại" nhưng tệp không tồn tại ở tất cả
- 22. Làm cách nào để chèn một số lượng lớn các hàng trong MySQL?
- 23. Làm thế nào để làm một số lượng lớn chèn trong mySQL sử dụng Node.js
- 24. mysql chèn số lượng lớn - tôi có thể sử dụng mệnh đề bỏ qua không? có giới hạn không. của hồ sơ cho chèn số lượng lớn?
- 25. SQLBulkCopy hoặc Chèn số lượng lớn
- 26. WCF "Instance đã tồn tại trong CounterSet" lỗi khi mở lại ServiceHost
- 27. BigDecimal.movePointRight() treo với số lượng rất lớn
- 28. Tạo một bảng MySQL 150M hàng lớn
- 29. Đặt lại số lượng chênh lệch trong git subtree
- 30. Hành vi AUTO_INCREMENT của MySQL trong một hàng chèn
Làm thế nào về thiết lập nó để 0 để thay thế? :) –
Nếu bạn * có thể * làm điều này để làm việc, bạn sẽ mong đợi điều gì sẽ xảy ra khi tăng tự động đạt 1000 lần nữa? –