[SQL] DROP IF는 VS DROP 존재?
SQLDROP IF는 VS DROP 존재?
어떤 차이 사이가 있다면 누군가가 말해 줄 수
DROP IF EXISTS [TABLE_NAME]
DROP [TABLE_NAME]
내 MVC 웹 응용 프로그램에서 JDBC 템플릿을 사용하고 있기 때문에이 요청하고있다. 내가 DROP [TABLE_NAME]을 사용하는 경우 오류는 테이블 존재를 밝혔다. 내가 DROP IF가 [TABLE_NAME]를 EXISTS 사용하는 경우 그리고 그것은 잘못된 SQL 구문을 말한다. 어떤 하나의 도움이 수 있습니까?
해결법
-
==============================
1.표준 SQL 구문은
표준 SQL 구문은
DROP TABLE table_name;
존재하는 경우는 표준 아니다; 다른 플랫폼은 다른 구문을 지원하거나 전혀 지원하지 않을 수 있습니다. PostgreSQL을, 상기 구문은
DROP TABLE IF EXISTS table_name;
테이블이 존재하지 않는 경우 첫 번째 오류가 발생한다, 또는 다른 데이터베이스 오브젝트에 의존합니다. 대부분의 경우, 다른 데이터베이스 개체는 외래 키 참조가 될 것입니다,하지만 너무 다른 사람이있을 수 있습니다. 테이블이 존재하지 않는 경우 (뷰는, 예를 들어.) 두 번째는 오류가 발생하지 않지만 다른 데이터베이스 개체가 종속 경우 여전히 오류가 발생합니다.
테이블, 그리고에 의존하는 다른 모든 오브젝트, 이들의 사용을 놓습니다.
DROP TABLE table_name CASCADE; DROP TABLE IF EXISTS table_name CASCADE;
신중 CASCADE를 사용합니다.
-
==============================
2.그것은 직접적으로 요구되는 것이 아니다. 나는 많은 다른 사람들도 할 생각하지만 제대로 드롭 테이블을 수행하는 방법을 찾고, 나는이 질문을 통해 비틀 거렸다.
그것은 직접적으로 요구되는 것이 아니다. 나는 많은 다른 사람들도 할 생각하지만 제대로 드롭 테이블을 수행하는 방법을 찾고, 나는이 질문을 통해 비틀 거렸다.
SQL 서버에서 2016+ 당신은 사용할 수 있습니다
DROP TABLE IF EXISTS dbo.Table
SQL 서버 <2016 내가하는 일은 영구 테이블에 대해 다음이다
IF OBJECT_ID('dbo.Table', 'U') IS NOT NULL DROP TABLE dbo.Table;
또는이 임시 테이블
IF OBJECT_ID('tempdb.dbo.#T', 'U') IS NOT NULL DROP TABLE #T;
-
==============================
3.당신은 당신의 구문에서 테이블을 잊었 :
당신은 당신의 구문에서 테이블을 잊었 :
drop table [table_name]
이는 테이블 삭제합니다.
사용
drop table if exists [table_name]
검사 테이블을 삭제하기 전에 존재하는 경우. 이 존재하는 경우,이 삭제됩니다. 그렇지 않은 경우, 오류가 발생되지 않으며 어떠한 조치가 취해지지한다.
-
==============================
4.
DROP TABLE IF EXISTS [table_name]
최초로 확인 테이블은 않는 경우 테이블을 삭제 존재하는 경우 동안
DROP TABLE [table_name]
그것은이 오류로 종료 존재하지 않는 그렇다면, 확인하지 않고 삭제
-
==============================
5.같은 이름의 테이블이 존재하지 않는 경우 DROP IF는 아무것도하지 않습니다 만 존재하는 동안, DROP 오류와 함께 실패합니다.
같은 이름의 테이블이 존재하지 않는 경우 DROP IF는 아무것도하지 않습니다 만 존재하는 동안, DROP 오류와 함께 실패합니다.
당신이 생성 / 스크립트를 사용하여 데이터베이스를 modifi 경우에 유용합니다; 이 방법은 테이블의 이전 버전이 삭제되는 것을 직접 확인 할 필요가 없습니다. 당신은 단지 DROP IF가 존재하지 잊어 버려요.
물론,이 옵션을 지원하지 않을 수 있습니다 현재 DB 엔진은, 당신이 제공 한 정보와 오류에 대한 자세한 이야기하기 어렵다.
from https://stackoverflow.com/questions/9565818/drop-if-exists-vs-drop by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 SQL 문자열의 첫 번째 문자를 얻으려면? (0) | 2020.07.20 |
---|---|
[SQL] T-SQL에서 문자열의 마지막 문자를 제거? (0) | 2020.07.20 |
[SQL] 명성에 기반 권한 구현 [폐쇄] (0) | 2020.07.20 |
[SQL] 어떻게 널 (null)을 허용하지 않는 PostgreSQL 데이터베이스에 열을 추가 할 수 있습니까? (0) | 2020.07.20 |
[SQL] 인덱스가 존재하지 않을 때 추가 최신 행 결정 [중복] (0) | 2020.07.20 |