기존 응용 프로그램에는 (거의) 중복 행이있는 기본 키가없는 테이블이 있습니다. 다른 시스템과의 통합을 위해 이러한 중복 행을 고유하게 만드는 열을 테이블에 추가해야합니다. 테이블은 본질적으로 :Postgres는 데이터베이스의 고유 한 행을 구별하기 위해 seq #를 추가합니다.
+------+---------+--------+ | txn# | detail# | amount | +------+---------+--------+난 그냥 모든 기존 행에 대해 증가하는 서열 번호를 사용할 수
은, 그러나, 응용 프로그램 변경, 기존의 '거의 키'(기본적으로 거래 # 세부 #)를 가지고하는 것입니다 및 증가 이 조합의 일련 번호 (예를 들어, txn # 1, detail # 1에 대해 두 개의 행을 가지며 첫 번째에 대해 seq # 1을, 두 번째에 대해 seq # 2를 가지며 txn # 513 인 경우 detail # 44는 3 개의 중복 된 행을 가지며, 이것들은 적절하게 seq # 1,2,3을 가질 것입니다. 애플리케이션의 변경 전후의 데이터가 유사하게 설정된 경우 이상적입니다 (지원 관점에서). 이 열을 만들거나 행을 수동으로 순환하여 txn # 또는 detail #이 변경 될 때마다 사용되는 시퀀스를 재설정해야합니까?
덧붙여 추가 :이 응용 프로그램은 PostgreSQL 7.4 & 8.1에 배포되며 솔루션은 두 버전 모두에서 작동해야합니다.
감사합니다. ctid 일은 나를 위해 퍼즐의 누락 된 부분이었습니다! –