Skip to main content

DDL Operations

Generate DDL statements from the context menu.

Access: Right-click table → Templates


Available Operations

OperationWhat It DoesCost
CREATE TABLE (DDL)Generate full schema DDLFree
SELECTQuery templateQuery
INSERT INTOInsert templateQuery
COPY TABLECopy structure + dataQuery
CLONE TABLELightweight copy (metadata only)Free
TRUNCATEDelete all rows, keep schemaFree
ALTER OPTIONSModify table settingsFree
RENAMEChange table nameFree
DROPDelete tableFree

COPY vs CLONE

COPY: Duplicates data (slow, costs query charges)

CREATE TABLE `project.dataset.table_copy` AS
SELECT * FROM `project.dataset.table`

CLONE: Metadata-only, copy-on-write (instant, free)

CREATE TABLE `project.dataset.table_clone`
CLONE `project.dataset.table`

Use CLONE for backups, testing, staging environments.


Common Patterns

Backup with expiration:

CREATE TABLE `project.dataset.table_backup_20250110`
CLONE `project.dataset.table`
OPTIONS(expiration_timestamp = TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 30 DAY))

Clone at specific time:

CREATE TABLE `project.dataset.table_clone`
CLONE `project.dataset.table`
FOR SYSTEM_TIME AS OF TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)

Recover from TRUNCATE:

INSERT INTO `project.dataset.table`
SELECT * FROM `project.dataset.table`
FOR SYSTEM_TIME AS OF TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)

ALTER OPTIONS

ALTER TABLE `project.dataset.table`
SET OPTIONS(
description = "Updated description",
expiration_timestamp = TIMESTAMP("2025-12-31"),
labels = [("env", "prod")],
max_time_travel_hours = 168
)

Permissions Required

  • CREATE: bigquery.tables.create
  • DROP: bigquery.tables.delete
  • ALTER: bigquery.tables.update