복붙노트

[SQL] 우리는 다른 테이블의 기본 키가 아닌 외부 키를 가질 수있다?

SQL

우리는 다른 테이블의 기본 키가 아닌 외부 키를 가질 수있다?

외래 키는 다른 테이블의 실제 기본 키하지만 우리가 다른 테이블의 기본 키가 아닌 외부 키를 가질 수있는 모든 책에 기록 된

해결법

  1. ==============================

    1.예 - 당신이 외부 키를 가질 수 있습니다 참조하는 다른 테이블의 고유 인덱스.

    예 - 당신이 외부 키를 가질 수 있습니다 참조하는 다른 테이블의 고유 인덱스.

    CREATE UNIQUE INDEX UX01_YourTable ON dbo.YourTable(SomeUniqueColumn)
    
    ALTER TABLE dbo.YourChildTable
       ADD CONSTRAINT FK_ChildTable_Table
       FOREIGN KEY(YourFKColumn) REFERENCES dbo.YourTable(SomeUniqueColumn)
    
  2. ==============================

    2.정의에 외래 키는 일부 테이블의 후보 키를 참조해야합니다. 그것은 반드시 기본 키가 될 필요가 없습니다.

    정의에 외래 키는 일부 테이블의 후보 키를 참조해야합니다. 그것은 반드시 기본 키가 될 필요가 없습니다.

    세부의 문제로서 제약은 SQL에서 FOREIGN KEY 관계형 모델의 외부 키의 교과서 정의에 정확히 일치하지 않는했다. SQL의 FOREIGN KEY 제약 다르기 때문에 :

  3. ==============================

    3.예, 고유 키는 정확한 기본 키 기본 키의 일부가 아닌 같이 다른 테이블의 고유 키를하는 외래 키가있을 수 있습니다.

    예, 고유 키는 정확한 기본 키 기본 키의 일부가 아닌 같이 다른 테이블의 고유 키를하는 외래 키가있을 수 있습니다.

    그게 가능 그래서 외래 키는 다른 테이블의 고유 키는 것을.

  4. ==============================

    4.일반 표준 대답은 no입니다. 외래 키는 다른 테이블에서 유일하게 모든 열을 참조하는 경우에만 가능하다. 그 말 외래 키는 다른 테이블과 기본 키의 후보 키도 후보 키 테이블입니다해야합니다.

    일반 표준 대답은 no입니다. 외래 키는 다른 테이블에서 유일하게 모든 열을 참조하는 경우에만 가능하다. 그 말 외래 키는 다른 테이블과 기본 키의 후보 키도 후보 키 테이블입니다해야합니다.

  5. from https://stackoverflow.com/questions/2895219/can-we-have-a-foreign-key-which-is-not-a-primary-key-in-any-other-table by cc-by-sa and MIT license