Subject pretty much says it all. When I run the code from the BigQuery docs to change the table property (in this case, its expiration date), it seems to just summarily delete the table instead. (Can't be found in the BQ GUI either.) Anyone know why? Thanks.
# Replace "dk" with your own initials before running this
s_table_id = 'hcwisdom.temp_tables.new_test_table'
from google.cloud import bigquery
client = bigquery.Client()
schema = [
bigquery.SchemaField("full_name", "STRING", mode="REQUIRED"),
bigquery.SchemaField("age", "INTEGER", mode="REQUIRED"),
]
try:
client.get_table(s_table_id) # Make an API request.
print("Table {} exists.".format(s_table_id))
except:
print("Creating table {}.".format(s_table_id))
table = bigquery.Table(s_table_id, schema=schema)
table = client.create_table(table)
# Verify
table = client.get_table(s_table_id)
print(
"Found {} rows and {} columns in {}".format(
table.num_rows, len(table.schema), s_table_id
)
)
# Update table property
# in the manner of https://cloud.google.com/bigquery/docs/samples/bigquery-update-table-expiration
import datetime
table = client.get_table(s_table_id)
table.expires = datetime.datetime.now() + datetime.timedelta(hours = 2)
client.update_table(table, ['expires'])
# Try to access the table -- you'll get a "not found" error
table = client.get_table(s_table_id)