2017-11-20 33 views
0

많은 테이블과 관계를 생성하는 정말 큰 쿼리 (MySQL에서 SQL로)를 채택하고 있습니다. 문제는 해당 테이블을 참조하는 외래 키를 추가하기 전에 테이블이 있는지 항상 확인한다는 것입니다.존재하지 않는 테이블에서 외래 키를 확인하지 않고 테이블 만들기

그래서이 문제를 피하기 위해 쿼리의 순서를 다시 잡아야합니다. 문제가 발생했을 때마다 쿼리를 중지하지 않고 테이블을 만들고 참조를 추가 할 수있는 지침이 있다면 제 질문입니다. .

저는 Azure DB에서 SQL을 사용하고 있습니다.

감사합니다.

답변

3

가장 쉬운 방법은 모든 테이블을 먼저 만든 다음 ALTER TABLE을 사용하여 제약 조건을 추가하는 것입니다. 예를 들어

:

CREATE TABLE a(id INT PRIMARY KEY IDENTITY(1,1), b_id INT, c CHAR(10)); 
CREATE TABLE b(id INT PRIMARY KEY IDENTITY(1,1), z INT); 

ALTER TABLE a ADD CONSTRAINT FK_a_b_id_b FOREIGN KEY (b_id) REFERENCES b(id); 

Rextester Demo

+0

감사합니다! 어쨌든 모든 쿼리를 거쳐 변경해야합니다. 데이터베이스에 대해 foreign_check가 설정되어 있지 않은지 궁금합니다. –

+0

아무 것도 변경할 필요가 없습니다. 테이블을 스크립팅 할 때 어떤 도구를 사용합니까? SSMS에는 자동으로 수행 할 수있는 옵션이 있습니다. – lad2025

+0

예 SSMS를 사용하고 있지만 스크립트가 이미 있습니다. MySQL 구문을 그대로 적용하고 있습니다. 문제는 7k 행의 스크립트가 있다는 것입니다. –