DML

BigQuery DML(데이터 조작 언어)을 사용하면 BigQuery 테이블에서 데이터를 업데이트, 삽입, 삭제할 수 있습니다.

다음 조건에 따라 SELECT 문을 실행할 때와 같은 방식으로 DML 문을 실행할 수 있습니다.

  • 표준 SQL을 사용해야 합니다. 표준 SQL을 사용하려면 표준 SQL 사용을 참조하세요.
  • 대상 테이블은 지정할 수 없습니다. 예를 들어 웹 UI에서 대상 테이블선택된 테이블 없음으로 설정해야 합니다.

    대상 테이블이 선택되지 않은 것을 보여주는 BigQuery 웹 UI 스크린샷

제한사항

  • 각 DML 문은 암시적 트랜잭션을 시작합니다. 즉, 각 DML 문이 성공적으로 종료될 때마다 해당 문이 수행한 변경사항이 자동으로 커밋됩니다. 다중 문 트랜잭션은 지원되지 않습니다.
  • 다음과 같은 DML 문 조합만 테이블에서 동시에 실행하도록 허용됩니다.

    • UPDATEINSERT
    • DELETEINSERT
    • INSERTINSERT

    그렇지 않으면 DML 문 중 하나가 중단됩니다. 예를 들어 2개의 UPDATE 문이 테이블에 대해 동시에 실행될 경우, 둘 중 하나만 성공합니다.

  • 최근에 스트리밍(tabledata.insertall 메소드 사용)을 통해 테이블에 기록된 행은 UPDATE, DELETE 또는 MERGE 문을 사용하여 수정할 수 없습니다. 일반적으로 최근 쓰기 작업은 최근 30분 내에 발생한 작업입니다. 테이블에 있는 다른 모든 행은 UPDATE, DELETE 또는 MERGE 문을 사용해서 수정 가능한 상태로 유지됩니다.

  • when_clause, search_condition, merge_update_clause 또는 merge_insert_clause 내의 상관 서브 쿼리는 MERGE 문에 지원되지 않습니다.

  • INSERT 절만 있는 경우(2개 이상 존재 가능), MERGE 문이 INSERT 문과 같이 작동합니다. INSERT 전용 MERGE 문은 다른 DML 문(INSERT, UPDATE, DELETE 또는 MERGE)과 동시에 실행될 수 있습니다.

    MERGE 문이 INSERT 절로 제한되지 않은 경우(1개 이상의 UPDATE 또는 DELETE 절 포함), 이 문은 UPDATE 또는 DELETE 절을 포함하는 다른 MERGE 문과 동시에 실행될 수 없습니다. 또한 이 문은 다른 DELETE 또는 UPDATE 문과 동시에 실행될 수 없습니다.

  • 데이터 조작 언어(DML) 문을 포함하는 쿼리는 와일드 카드 테이블을 쿼리 대상으로 사용할 수 없습니다. 예를 들어 와일드 카드 테이블은 UPDATE 쿼리의 FROM 절에서 사용할 수 있지만 UPDATE 작업의 대상으로 사용할 수 없습니다.

할당량

DML 할당량 정보에 관한 자세한 내용은 할당량 및 한도 페이지의 DML 문을 참조하세요.

가격

DML 가격 책정에 대한 자세한 내용은 가격 책정 페이지의 DML 가격 책정을 참조하세요.

다음 단계

  • DML 구문 페이지에서 DML 구문 및 샘플을 참조하세요.
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.