Хорошо, поскольку клиент хочет автоматизировать определенный процесс, который включает в себя создание новой структуры ключей в базе данных LIVE, мне нужно создать отношения между tables.columns. Теперь я нашел таблицы ALL_CONS_COLS en USER_CONSTRAINTS для хранения информации об ограничениях. Если бы я вручную создавал ограничения, вставляя их в эти таблицы, я мог бы воссоздать исходные ограничения. Мой вопрос: есть ли еще таблицы, на которые я должен обратить внимание? Есть ли у вас альтернативные предложения, так как это звучит ОЧЕНЬ грязно и склонно к ошибкам.Oracle вручную добавляет ограничение FK
Текущих ментаторы
Создать новый столбец в каждой таблице для рк;
Создайте направляющую для этого ПК;
Создайте новый столбец в каждой таблице для FK;
Извлечь направляющую, связанную с
FK;
....... сделал ГНФАР ......
Добавить новое ограничение, основанный на старой
один;Удалить старое ограничение;
Переименовать новые столбцы;
Это своего рода изворотливый, и я бы скорее изменил свой метод, любые идеи были бы полезными.
Чтобы сказать, что клиент хочет изменить ключевую структуру от int до guid в живой базе данных. Каков наилучший способ приблизиться к этому?
Хорошо, ALTER TABLE это так, но как я могу автоматизировать его для копирования существующих отношений? Единственный способ, который я могу себе представить, - это запросить отношения в таблице all_cons_cols и user_constraints, сделав ее копию, для «новых» столбцов и DROPping «старых». – Oxymoron
Создайте скрипт, который генерирует команды для вас. Что-то вроде «select» alter table '|| table_name ||' drop constraint '|| constraint_name ||'; ' из user_constraints, где constraint_type = 'P' ", чтобы удалить все первичные ключи. И что-то похожее на удаление внешних ключей и создание новых ограничений. –
Так что мне нужно, чтобы пользователь user_constraints стол в точности так же, как я делаю сейчас;) Готов в виду, что мы говорим о живой базе данных с записями. ОТКЛЮЧЕНИЕ или РАЗРЕШЕНИЕ не будет возможно из-за ссылок. – Oxymoron