Việc tăng dần chắc chắn là không tốt nếu bạn có nhiều hơn một quy trình ghi vào cùng một bảng - bạn nhất định có va chạm.
Vì đó là MySQL mà chúng ta đang nói đến, nên thứ dễ sử dụng nhất sẽ là identity
. Trong ánh xạ Hibernate của bạn:
<generator class="identity"/>
Trong tập lệnh MySQL của bạn:
CREATE TABLE IF NOT EXISTS `my_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data1` int(11) NOT NULL,
`data2` int(11) NOT NULL,
`timestamp` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Để thay đổi bảng hiện có:
ALTER TABLE `my_table`
CHANGE COLUMN `id` `id` int(11) NOT NULL AUTO_INCREMENT=$NEW_VALUE$;
trong đó $ NEW_VALUE $ nên được thay thế bằng id có sẵn tiếp theo để trình tự đó không được đặt lại thành 1.