Я ищу лучшее решение проблемы, с которой я столкнулся.
У меня есть несколько баз данных, которые я часто выравниваю, чтобы в них были одни и те же данные. В некоторых ссылочных таблицах есть столбцы идентификатора автоинкремента, а в других таблицах есть столбцы, соответствующие этим значениям идентификатора. К сожалению, на исходных идентификаторах БД после изменений может быть что-то вроде: (10,15,20), тогда как после вставки его в таблицу назначения это равно (1,2,3). Я надеюсь, что мои макеты прояснят ситуацию:
Исходная БД RefTable:
ID_________Name
10_________a
15_________b
20_________c
База данных RefTable:
ID_________Name
1__________a
2__________b
3__________c
Source FactTable:
RefTableID___OtherColumns
10__________a
10__________b
15__________c
15__________d
Проблема в том, что после переноса FactTable в целевую БД он не совпадает с записями из RefTable. У меня была идея добавить еще один столбец, который будет редактироваться в отличие от столбца идентификатора. Проблема заключается в том, что конечный пользователь не должен видеть это (это ничего не будет значить для него), поэтому он также должен иметь автоинкремент. Что я должен использовать в этой ситуации:
- последовательность
- -trigger
- -пост добавить / сохранить хранимую процедуру?
А может, у кого-то есть идеи, как решить эту проблему?