간단한 SQL 스크립트를 작성 중이며 존재하지 않는 경우 새 데이터베이스를 작성해야합니다 (이미 덮어 쓰거나 테이블을 놓을 수는 없습니다).CREATE DATABASE가 덮어 씁니까?
ANSI 호환이 필요합니다. W3 Schools에 따라 :
CREATE DATABASE my_db;
는 ... ANSI 호환입니다. 그러나 my_db
이 이미 존재하는 경우 그 행동이 무엇인지를 명시하지 않습니다.
질문 : 존재하지 않는 경우 my_db
을 만드는 ANSI 호환 SQL을 작성하거나 이미 존재하는 경우 아무 것도 수행하지 않는 방법은 무엇입니까? 미리 감사드립니다!
감사합니다 @cfeduke (+1) - Matt McHugh의 대답 아래 내 의견을 참조하십시오 - 나는 당신을 위해 같은 질문을했습니다! –
CREATE DATABASE는 ANSI와 호환되지 않기 때문에 명령문의 실행에 의해 반환 된 오류를 처리하는 데 표준을 준수하는 방법이 될 수 없습니다 (데이터베이스를 대체하고 오류가 발생하지 않는 경우). 불행히도 여기에는 간단한 해결책이 없습니다. 할 수있는 최선의 방법은 지원하려는 주 데이터베이스 공급 업체를 선택하고 올바른 SQL 명령을 RDBMS로 보내는 스크립트를 작성하고 지원되지 않는 RDBMS를 사용자주의로 남겨 두는 것입니다. – cfeduke
감사합니다 @cfeduke (+1) - 마지막 후속 조치, 약속드립니다 : "* ... 할 수있는 최선의 방법은 지원하려는 주 데이터베이스 공급 업체를 선택하고 올바른 SQL 명령을 실행하는 스크립트를 만드는 것입니다. RDBMS ... * "-이 작업을 수행하는 방법에 대한 예제를 제공 할 수 있습니까? 좋아하는 RDBMS를 선택하십시오. 필자는 벤더를 어떻게 자동으로 탐지하고 해당 벤더에 특정한 CREATE DATABASE를 실행하는지에 대한 예를보고 싶을뿐입니다. 다시 한 번 감사드립니다! –