Tak, możesz. Wystarczy, że ta kolumna będzie indeksem.
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'
);
Wstawi wiersze z wartościami autoinkrementacji dla „testInc”. Jednak jest to naprawdę głupia rzecz do zrobienia.
Już powiedziałeś, jak to zrobić:
„Zrób comment_id PK i wyegzekwuj integralność za pomocą unikalnego indeksu dla book_id, timestamp, user_id”.
Dokładnie tak powinieneś to robić. Nie tylko zapewnia właściwy klucz podstawowy dla tabeli, który będzie potrzebny w przyszłych zapytaniach, ale także spełnia zasada najmniejszego zdziwienia .