SQL CREATE TABLE 구문에서 "where 1 = 2"를 사용하는 이유는 무엇입니까?
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2;
나는 인터넷 어딘가 에서이 진술을 읽었지만 WHERE 1=2
.
누구든지 설명해 주시겠습니까?
이 유형의 명령은 일반적으로 한 테이블의 구조를 다른 테이블로 복사하는 데 사용됩니다. 이 경우, EMPL_DEMO
동일한 칼럼 구조를 갖는 것 employees
, 키 또는 제한을 제외 .
은 1=2
항상로 평가 False
되는이 행 중 하나를 복사에서 당신을 방지 할 수 있습니다.
CREATE TABLE
(새 테이블 만들기)
EMPL_DEMO
(EMPL_DEMO라고 함)
AS
(데이터 및 구조 포함)
SELECT * FROM employees WHERE 1=2;
(1 = 2 인 직원의 모든 것. 1은 2가 아니므로-구조와 일치하는 행 0 개 모두 복사)
.. 본질적으로 데이터가 아닌 구조를 복사합니다.
이 구문은 동일하지만 데이터가없는 동일한 구조의 테이블을 만드는 것이 더 분명합니다.
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees limit 0;
이는 제약 조건, 키, 인덱스, ID 속성 및 데이터 행을 제외한 테이블의 구조를 복사하는 데 유용 할 수 있습니다 .
이 쿼리는 조건이 항상로 평가되므로 EMPL_DEMO
직원 테이블에서 복사 된 행이없는 테이블을 만듭니다 .WHERE 1=2
FALSE
CREATE TABLE EMPL_DEMO
AS
SELECT *
FROM employees
WHERE 1=2;
내 친구, Google을 신뢰하십시오. 해당 진술을 Google에 검색했을 때 첫 번째 결과의 하단에서 :
예를 들면 :
CREATE TABLE suppliers AS (SELECT * FROM companies WHERE 1=2);
이렇게하면 companies 테이블의 모든 열을 포함하지만 companies 테이블의 데이터는없는 supplier라는 새 테이블이 생성됩니다.
신탁:
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=2; //just structure not data
CREATE TABLE EMPL_DEMO AS SELECT * FROM employees WHERE 1=1; //ststructure and data
Teradata 데이터베이스에 대한 더 나은 이해 :
CREATE TABLE EMPL_DEMO AS Memployees with no data; //structure
CREATE TABLE EMPL_DEMO AS Memployees with data; //structure and data
SQL Server에서
select * into table1 from table2 where 1 = 2 (Only Structure)
* 선택 *을 table2에서 table1로, 여기서 1 = 1 (데이터가있는 구조)
참고 URL : https://stackoverflow.com/questions/45783699/why-use-where-1-2-on-a-sql-create-table-syntax
'program tip' 카테고리의 다른 글
API 17 이전에 RelativeLayout에서 규칙 제거 (0) | 2020.10.14 |
---|---|
JavaScript에서 두 배열을 어떻게 압축합니까? (0) | 2020.10.14 |
권한 시스템 모델링 (0) | 2020.10.14 |
jQuery를 사용하여 "사용 중"표시기를 표시하는 방법은 무엇입니까? (0) | 2020.10.14 |
Java substring ()의 시간 복잡성 (0) | 2020.10.14 |