2015-01-08 4 views
1

mysql에서 직렬 형식 열의 외래 키를 만들어야하는 경우가 있습니다.SQL에서 직렬 데이터 형식 열의 외래 키를 만드는 방법

또한 나는 (기본 키가) 직렬 형 컬럼에 대한 외래 키

표 1 정의하는 것이 좋습니다/표준인지 알고 싶습니다

txn_id SERIAL, 
txn_status integer 

표 2 : SERIAL 이후

txn_id integer foreign key (for table1.txn_id) 
txn_error_code integer 
+0

MySQL에는'serial' 데이터 유형이 없습니다. 실제로 Postgres를 사용하고 있습니까? –

답변

0

는 아래와 같은 코드를 사용할 수 있습니다, BIGINT UNSIGNED의 별칭입니다.

CREATE TABLE IF NOT EXISTS Table2(
txn_id BIGINT UNSIGNED, 
txn_error_code integer, 
FOREIGN KEY (txn_id) REFERENCES Table1 (txn_id)) 
0

물론 직렬 유형 열에 대해 외래 키를 작성할 수 있지만 두 테이블간에 링크가없는 경우 문제가 발생합니다. 두 테이블에 해당 값에 해당 값이있는 경우에만 외래 키를 구현할 수 있다는 점을 기억하십시오. 두 번째 또는 참조 된 테이블에서 동일한 항목의 일련 번호가 다를 수 있습니다. 두 테이블에있는 항목의 일련 번호와 일치 시키려면주의를 기울여야합니다. 그렇지 않으면 데이터가 손실됩니다.

관련 문제