Область действия AUTO_INCREMENT в MySQL? - PullRequest
6 голосов
/ 09 февраля 2011

Я использую MySQL в приложении rails. У меня есть таблица пользователей (стандартные вещи, такие как id, имя и т. Д.) И таблица книг (опять же с id, user_id и title и т. Д.).

Я хотел бы иметь столбец (давайте назовем его user_book_id), который должен автоматически увеличиваться как id, но ограничен user_id. Как и в случае с идентификатором, даже если запись удалена в таблице книг, user_book_id не должен использоваться повторно. Пример:

User

id | Name
------------
1  | Jerry
2  | Newman

Book

id | user_id | user_book_id | Title
-----------------------------------
1  | 1       | 1            | Jerry's First Book
2  | 1       | 2            | Jerry's Second Book
3  | 2       | 1            | Newman's First Book
4  | 1       | 3            | Jerry's Third Book

Есть ли способ сделать это в MySQL? Я искал, но ничего не мог найти.

Спасибо, Prateek

Ответы [ 2 ]

1 голос
/ 09 февраля 2011

Нет, такого не существует. Либо разрешите auto_increment быть уникальным по всей таблице, либо вы должны реализовать его самостоятельно.

0 голосов
/ 09 февраля 2011

Вы можете реализовать это самостоятельно, скажем, если вы поместите последнее значение user_book_id в новый столбец в таблице пользователей, то при вставке в книги возьмите значение из нового столбца в пользователях и увеличите + 1.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...