Ano můžeš. Stačí, aby tento sloupec byl indexem.
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'
);
Vloží řádky s automatickým zvyšováním hodnot pro 'testInc'. To je však opravdu hloupá věc.
Už jste řekli správný způsob, jak to udělat:
"Vytvořte PK comment_id a vynucujte integritu prostřednictvím jedinečného indexu na book_id, timestamp, user_id."
Přesně tak byste to měli dělat. Nejen, že vám poskytuje správný primární klíč pro tabulku, který budete potřebovat pro budoucí dotazy, ale také vyhovuje princip nejmenšího údivu .