Tôi đã sử dụng kỹ thuật của Leonard Challis với một số thay đổi:
CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM table WHERE primarykey = 1;
UPDATE tmptable_1 SET primarykey = NULL;
INSERT INTO table SELECT * FROM tmptable_1;
DROP TEMPORARY TABLE IF EXISTS tmptable_1;
Là một bảng tạm thời, không bao giờ được có nhiều hơn một bản ghi, vì vậy bạn không phải lo lắng về khóa chính. Đặt nó thành null cho phép MySQL tự chọn giá trị, vì vậy không có nguy cơ tạo bản sao.
Nếu bạn muốn chắc chắn rằng bạn chỉ có một hàng để chèn, bạn có thể thêm LIMIT 1 vào cuối dòng CHÈN VÀO.
Lưu ý rằng tôi cũng đã thêm giá trị khóa chính (1 trong trường hợp này) vào tên bảng tạm thời của mình.