Được 👍 nhưng còn tùy bạn đang dùng hệ quản trị CSDL nào (MySQL, MariaDB, SQLite, PostgreSQL…).
Nguyên tắc:
AUTO_INCREMENT
sẽ không lùi lại. Nghĩa là nếu bạn đã có bản ghi tới ID = 100, xoá nó, rồi tự INSERT
lại với ID=100
thì vẫn được. Nhưng lần kế tiếp bạn không truyền ID thì CSDL sẽ sinh ra ID = 101 (không quay lại 100).Ví dụ (MySQL):
CREATE TABLE test ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) ); INSERT INTO test (name) VALUES ('A'); -- id = 1 INSERT INTO test (name) VALUES ('B'); -- id = 2 DELETE FROM test WHERE id = 2; INSERT INTO test (id, name) VALUES (2, 'B new'); -- OK, id = 2 gán lại thủ công INSERT INTO test (name) VALUES ('C'); -- id = 3 (không quay về 2)
👉 Tóm lại:
Bạn có muốn mình viết luôn câu lệnh để reset lại AUTO_INCREMENT sau khi xóa không, để hệ thống tự sinh ID về lỗ hổng đã xóa?