Объединение 2 таблиц с идентификаторами, которые перекрываются - PullRequest
1 голос
/ 07 июля 2011

У меня есть 2 таблицы, их структура идентична, но используется для 2 разных приложений.Таким образом, каждая из них имеет уникальные записи (записи из app1 не будут существовать в app2).Но их идентификаторы поддерживаются отдельно двумя приложениями.Таким образом, идентификаторы из app1 могут существовать в app2, но с другой информацией.

Мне нужно объединить записи этих двух таблиц в одну таблицу, поскольку эти два приложения объединяются в одну.Проблема с идентификаторами.Я, вероятно, сброслю идентификаторы и восстановлю уникальный идентификатор для каждой записи.На идентификаторы не ссылаются другие таблицы, поэтому их сброс не является проблемой.Но я не совсем уверен, как это выполнить.

Ответы [ 3 ]

6 голосов
/ 07 июля 2011

Создать таблицу со столбцом автоматического увеличения (id).

Затем создайте запрос INSERT ... SELECT для импорта данных из каждой таблицы

Например

INSERT INTO new_table(column1,column2,.....) -- ommiting the id column
SELECT column1,column2,... -- ommiting the id column
FROM old_table1

INSERT INTO new_table(column1,column2,.....) -- ommiting the id column
SELECT column1,column2,...-- ommiting the id column
FROM old_table2
1 голос
/ 07 июля 2011

Здесь используется INSERT INTO .. SELECT FROM - без столбца id.Также я бы поместил столбец application_id в новую таблицу - просто чтобы быть уверенным, что я знаю, откуда берутся данные:

INSERT INTO your_table(app_id, col1,co2,.....) 
SELECT 1, col1,col2,... 
FROM old_table1

Для приложения 2:

INSERT INTO your_table(app_id, col1,co2,.....) 
SELECT 2, col1,col2,... 
FROM old_table2
0 голосов
/ 07 июля 2011

Итак, идентификаторы из app1 могут существовать в app2, но с другой информацией.

Один вариант, на который вы можете обратить внимание, это с использованием представления для консолидацииданные обеих таблиц в формате, приемлемом для любого приложения.

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