В механизме хранения MySQL InnoDB первичный ключ обычно увеличивается автоматически. Однако возможно автоматическое увеличение и непервичного ключа.
Схема базы данных включает две таблицы: «book_comments» и «book_comments_votes». В таблице «book_comments» есть столбец «comment_id», не являющийся первичным ключом, который необходимо автоматически увеличить для обеспечения согласованности с таблицей «book_comments_votes», которая содержит ссылку на «comment_id» в качестве первичного ключа.
Для автоматического увеличения непервичного ключа его необходимо объявить как индекс. Вот пример:
CREATE TABLE `book_comments` (
`book_id` MEDIUMINT NOT NULL,
`timestamp` MEDIUMINT NOT NULL,
`user_id` MEDIUMINT NOT NULL,
`vote_up` SMALLINT,
`vote_down` SMALLINT,
`comment` TEXT,
`comment_id` MEDIUMINT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`book_id`, `timestamp`, `user_id`),
KEY `comment_id` (`comment_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
Хотя создание простого индекса на основе непервичного ключа является наиболее простым решением, существуют некоторые альтернативы:
Однако рекомендуемым решением остается создание уникального индекса для непервичного ключа и избежание недостатков альтернатив. Этот подход обеспечивает простоту и целостность без ущерба для производительности или эффективности хранения данных.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3