더북(TheBook)

다음으로 Orders 테이블을 생성한 후 ALTER TABLE 문을 실행해서 두 테이블 간의 연관 관계를 정의해 보자. 코드 1-10에 해당 소스가 있다.

코드 1-10 Orders 테이블을 생성한 후 두 테이블의 연관 관계 정의

CREATE TABLE Orders (

  OrderNumber int NOT NULL PRIMARY KEY,

  OrderDate date NULL,

  ShipDate date NULL,

  CustomerID int NOT NULL DEFAULT 0,

  EmployeeID int NULL DEFAULT 0,

  OrderTotal decimal(15,2) NULL DEFAULT 0

);

 

ALTER TABLE Orders

  ADD CONSTRAINT Orders_FK99

    FOREIGN KEY (CustomerID)

      REFERENCES Customers (CustomerID);


 

이 두 테이블을 생성하고 데이터를 입력한 후 FOREIGN KEY 제약 조건을 추가하기로 결정했다면, Orders 테이블에 입력된 데이터가 참조 무결성을 위반할 때 Orders 테이블의 ALTER TABLE 구문은 실패할 것이다. 일부 데이터베이스 시스템에서는 성공할 수 있지만, 이때도 데이터베이스 옵티마이저는 이 제약 조건을 신뢰할 수 없다고 판단해 더는 사용하지 않을 것이다. 단순히 이 제약 조건을 정의하는 것만으로는 이전에 입력된 데이터에 대한 참조 무결성이 꼭 보장된다고 장담할 수 없다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.