좋아요, 클라이언트가 LIVE 데이터베이스에서 새로운 키 구조를 생성하는 것을 포함하여 특정 프로세스를 자동화하기를 원하기 때문에 tables.columns 사이에 관계를 만들어야합니다. 이제 제약 조건에 대한 정보를 보유하기 위해 테이블 ALL_CONS_COLS EN USER_CONSTRAINTS를 발견했습니다. 이 테이블에 수동으로 제약 조건을 만들면 원래 제약 조건을 다시 만들 수 있어야합니다. 내 질문 : 조사해야 할 테이블이 더 있습니까? 다른 제안 사항이 있습니다. 매우 더럽고 오류가 발생하기 쉽습니다.Oracle 수동으로 FK 제약 조건을 추가하십시오.
현재 작업 방식 :
이 약동학 각 테이블에 새 열을 만들기;
이 PK에 대한 GUID를 생성하십시오.
각 테이블에 FK를위한 새 열을 만듭니다.
FK와 연결된 GUID를 가져옵니다. SOFAR 수행
에 따라 새로운 제약 조건을 추가 이전
하나;이전 제약 조건을 제거하십시오.
새 이름 바꾸기;
이것은 일종의 dodgy이며 차라리 내 방법을 변경하면 모든 아이디어가 도움이 될 것입니다.
다른 점은 클라이언트는 실제 데이터베이스에서 int에서 guid로 키 구조를 변경하려고합니다. 이게 가장 좋은 방법은 무엇입니까
좋아, ALTER TABLE이긴하지만 기존 관계를 복사하는 작업을 자동화하려면 어떻게해야합니까? 내가 상상할 수있는 유일한 방법은 all_cons_cols 및 user_constraints 테이블의 관계를 쿼리하고 '새'열의 복사본을 만들고 'old'열의 DROPping입니다. – Oxymoron
명령을 생성하는 스크립트를 작성하십시오. "select 'alter table'|| table_name || 'drop constraint'|| constraint_name || ';'와 같은 것입니다. user_constraints에서 constraint_type = 'P' '로 설정하면 모든 기본 키가 삭제됩니다. 그리고 외래 키를 삭제하고 새로운 제약 조건을 만드는 것과 유사한 것입니다. –
그래서 나는 지금하고있는 것처럼 user_constraints 테이블을 정확하게 사용해야한다.) 우리는 실제 데이터베이스와 레코드에 대해 이야기하고있다. 참조로 인해 DISABLE 또는 DROP하는 것이 쉽지 않습니다. – Oxymoron