Có bạn có thể. Bạn chỉ cần đặt cột đó thành một chỉ mục.
CREATE TABLE `test` (
`testID` int(11) NOT NULL,
`string` varchar(45) DEFAULT NULL,
`testInc` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`testID`),
KEY `testInc` (`testInc`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
insert into test(
testID,
string
)
values (
1,
'Hello'
);
insert into test(
testID,
string
)
values (
2,
'world'
);
Sẽ chèn các hàng có giá trị tăng tự động cho 'testInc'. Tuy nhiên, đây là một điều thực sự ngớ ngẩn.
Bạn đã nói đúng cách để làm điều đó:
"Đặt comment_id PK và thực thi tính toàn vẹn thông qua một chỉ mục duy nhất trên book_id, timestamp, user_id."
Đó chính xác là cách mà bạn nên làm. Nó không chỉ cung cấp cho bạn một khóa chính thích hợp cho bảng mà bạn sẽ cần cho các truy vấn trong tương lai, nó còn đáp ứng nguyên tắc ít gây ngạc nhiên nhất .