Bạn không thể cắt bớt một bảng bị khóa để viết. Điều này là do "truncate" có nghĩa là "phá hủy bảng và tạo lại một bảng mới với cùng một lược đồ."
Tuy nhiên, bạn có thể rỗng cái bàn. Thay vì TRUNCATE TABLE asin_one_time_only
sử dụng DELETE FROM asin_one_time_only
. Lưu ý rằng điều này sẽ không đặt lại cách đánh số tự động gia tăng. Nếu bạn cũng muốn đặt lại nó, hãy sử dụng ALTER TABLE asin_one_time_only auto_increment=1
Tôi khuyên bạn nên làm điều này:
LOCK TABLES asin_one_time_only READ;
SELECT asin FROM asin_one_time_only;
-- minimize the possibility of someone writing to the table in-between
-- an "UNLOCK TABLES" and a "LOCK TABLES" by just issuing a new LOCK TABLES
-- I am not 100% sure that MySQL will do this atomically, so there is a
-- possibility that you may delete a row that was not read.
-- If this is unacceptable, then use a "LOCK TABLES asin_one_time_only WRITE"
-- from the very beginning.
LOCK TABLES asin_one_time_only WRITE;
DELETE FROM asin_one_time_only;
ALTER TABLE asin_one_time_only auto_increment=1;
UNLOCK TABLES;