CREATE OR REPLACE语句对于BigQuery表格来说不会产生停机或者数据丢失。它会先将新表格创建好,同时将之前的同名表格删除。因此,当前正在执行查询的用户可能会遇到所期望的表并不存在的情况,并且代码示例会因为需要存在的表格不存在而失败。
下面是一个代码示例,表明CREATE OR REPLACE语句对于数据和表格的安全性并没有任何危害。
#StandardSQL
#Creating sample table
CREATE TABLE mydataset.mytable (col1 INT64, col2 STRING);
#Creating entries in sample table
INSERT INTO mydataset.mytable (col1, col2) VALUES
(1, 'Hello'),
(2, 'World'),
(3, 'BigQuery');
#Viewing sample table
SELECT *
FROM mydataset.mytable;
#Updating schema with CREATE OR REPLACE statement
CREATE OR REPLACE TABLE mydataset.mytable (col1 INT64, col2 STRING, col3 BOOL);
#Viewing altered table
SELECT *
FROM mydataset.mytable;
这个代码示例包括创建一个表格,然后给表格中插入一些数据。然后我们使用CREATE OR REPLACE来更新表格的架构,添加一个额外的BOOL列。我们最后可以查看表格以确保新的列已经成功地添加。