외부 엔터티 (타사 시스템)를 참조하는 데 여러 테이블에 하나의 (외부) 키가 있기 때문에 해당 데이터로 기존 데이터베이스를 정규화하고 싶습니다. 이제는 데이터베이스에 직접 엔티티로 사용할 필 요가 있으므로 필자는이 작업을 수행하는 방법을 묻습니다.데이터베이스와 기존 데이터를 정규화하는 단계
해당 데이터베이스에 대한 DDL을 업데이트하고 DDL에 대한 업데이트 스크립트도 생성했습니다.
하지만 데이터를 마이그레이션하는 가장 좋은 방법은 무엇입니까?
이전 varchar-key를 사용하는 모든 테이블에는 이제 새 엔터티에 대한 Null 허용 외래 키가 없습니다. 이 새로운 필드를 어떻게 초기화합니까? DDL을 업데이트 한 후이 단계가 입니까? (null이 아닌 필드의 경우 가능합니까?)? 또는이 작업을 수행하려면 을 입력하고 DDL을 마이그레이션하는 방법은 무엇입니까?
예 : 모든 OldKeyThatWasJustAVarchar
의
Table NewEntity
+ Key (autogenerated)
+ SomeInfo
+ OldKeyThatWasJustAVarchar
Table Existing_1
- Key (autogenerated)
- SomeInfo_1
- SomeInfo_n
- OldKeyThatWasJustAVarchar ('logical' Reference)
+ NewForeignKeyToNewTable
Table Existing_2
- Key (autogenerated)
- ExampleFieldAnalogOtherTables
- OldKeyThatWasJustAVarchar ('logical' Reference)
+ NewForeignKeyToNewTable
내용은 그래서 간단한 SQL이 나에게 NewEntity의 필요한 ID 제공하는 것이, UNICE 있습니다
SELECT Key FROM NewEntity nw, Existing_n existing
WHERE nw.OldKeyThatWasJustAVarChar = existing.OldKeyThatWasJustAVarChar;
이전 varchars가 '일반'이 아니기 때문에 새 항목을 만들어야합니다. OK, 나중에 'not null'을 사용하는 것이 간단한 힌트였습니다. 너무 쉬웠다. 여기에 나무가 많이 ... ;-) thx – Sammy