Обычно я использую атрибут auto_increment, чтобы получить уникальный ключ/идентификатор для каждой строки в одной таблице для использования в качестве первичного индекса. Теперь у меня есть две таблицы, и, к сожалению, auto_increment не может создать новый ключ, используя последний идентификатор/ключ в другой таблице, чтобы все ключи/идентификаторы были уникальными в обеих. Если я буду использовать auto_increment для обоих столбцов индекса, возможность иметь два одинаковых идентификатора гарантирована! Есть простой способ сделать это?
Нужны предложения, чтобы получить уникальные индексные ключи для двух или более таблиц в mysql
comment
Почему вы хотите это сделать? Звучит как дизайн базы данных, который можно оптимизировать...
- person thejh   schedule 02.01.2011
comment
Может быть, я попытаюсь объяснить проблему лучше. Эти две таблицы содержат два типа вставки в основной документ: один двоичный и один текстовый. Когда подпрограмма sw показывает весь документ, она извлекает его из таблицы документов, а затем всю вставку из двух таблиц. После запроса соединения единственным способом узнать, что такое вставка, является ее идентификатор/ключ. Невозможно узнать, из какой таблицы пришла вставка, если я не поставлю другой идентификатор, чтобы отличить двоичный код от текстового.
- person oldsparky   schedule 02.01.2011
Ответы (2)
По крайней мере, с точки зрения дизайна реляционной базы данных ваше требование кажется необоснованным. Вы должны создать отдельную таблицу с общим полем auto_increment и указать на нее из двух других таблиц с внешними ключами.
person
Peter Eisentraut
schedule
01.01.2011
Если у тебя есть:
- таблица A с идентификаторами 1,2,3.
- таблица B с идентификаторами 1,2,3.
Тогда у вас уже есть следующие (виртуальные) уникальные идентификаторы:
- A1, A2, A3, B1, B2, B3
Вам не нужно вносить никаких изменений в вашу базу данных. Это чисто презентационный вопрос.
person
Mark Byers
schedule
01.01.2011
Разделяю на две таблицы только для разного содержания данных. Я начинаю думать, что это была плохая идея.
- person oldsparky; 02.01.2011