답변
나는 자동으로이 작업을 수행 할 수있는 항목을 찾을 수 없으므로 사용자가 원하는대로 작업 할 수 있습니다. 세상은 여전히 데이터베이스 개발자가 필요합니다.
가장 좋은 방법은 틀림없이 전체 변경을 스크립팅하는 것입니다. 이 스크립트를 만드는 가장 좋은 방법은 아마도 다른 스크립트 또는 코드 (코드를 작성하는 코드)를 사용하는 것일 수 있습니다.이 스크립트는이 특정 시나리오에서 사용할 수없는 것 같습니다. 물론 이들 각각은 구성되고 테스트되어야하는 또 다른 소프트웨어 계층을 추가합니다. 이 프로세스를 얼마 동안 반복하거나 일정 수준의 감사 추적 (예 : 스크립트 변경)이 필요하다고 생각하면이 스크립트를 작성하는 스크립트를 작성하고 스크립트를 작성하십시오.
실제로이 작업을 단 한 번의 계약으로 수행하고 DB 액세스를 막을 수 있다면 변경 사항을 수작업으로 수정하는 데 드는 시간과 노력을 절약 할 수 있습니다. 데이터 베이스. 이것에 의해, 당신이 선호하는 방법 (다이어그램, SQL DDL 등)을 통해 UUID 컬럼을 추가하고, 데이터 (아마 임시 SQL DML로)를 채우고, 키와 제약 조건을 설정 한 다음, 결국 오래된 외부 키를 제거하고 열 (다시 원하는 방법을 사용).
환경이 여러 개인 경우 (dev, test, prod) 잠재적으로 dev에서이 작업을 수행 한 다음 DB 비교 도구를 사용하여 변경 내용을 스크립팅 할 수 있지만 스크립트로 작성된 새 FK 값이 필요합니다. 이 SQL 서버에서 (내 가장 쉬운 DB)를 비록
예 여기
은 당신에게 아이디어를주고,하는 working script example on SQL Fiddle 약 당신이 불행하게도,하지 방법 스크립트 (할 것이다 무엇). 하나의 특정 작업 중에 누군가가 무언가를 수정할 수 있기 때문에 여전히 트랜잭션 적으로 일관성이 없습니다.
나는 이것이 어떤 의미에서 완전한 대답이 아니라는 것을 알고 있으므로 자유롭게 나를 투표 (더 나은 대답을 제공)하십시오.
행운을 빈다는 것은 실제로 재미있는 문제입니다.
이렇게하려면 사용자 지정 스크립트를 작성해야합니다. 얼마나 많은 테이블을 가지고 있느냐에 따라이 스크립트를 작성하고 테스트하는 것은 에디터에서 수동으로 변경하는 것보다 시간이 오래 걸릴 수 있습니다. –
모든 행을 수동으로 변경 하시겠습니까?! 나는 그것을하기 위해 많은 원숭이가 필요할 것이다. –
내 의견에 명확하지 않은 것에 대해 사과드립니다. 나는 변화의 범위를 추정 할 수있는 하나의 가능성으로 테이블 수를 참조했다. 나는 행, 레코드, 튜플 또는 데이터를 말하지 않았다. 또한 데이터베이스 테이블을 열고 스프레드 시트 인 것처럼 데이터를 변경하는 편집자의 사용은 권장하지 않습니다. 필자는 IDE 에서처럼 phpPgAdmin, Toad, SSMS 등과 같은 편집기를 언급합니다. –