Maj*_*aie 4 database create-table google-bigquery
我正在尝试学习 bigquery,但我注意到我根本无法添加主键或外键。
这是一个例子:
CREATE TABLE db.VENDOR
(
V_CODE INT64,
V_NAME String NOT NULL,
V_CONTACT String NOT NULL,
V_AREACODE String NOT NULL,
V_PHONE String NOT NULL,
V_STATE String NOT NULL,
V_ORDER String NOT NULL,
PRIMARY KEY(V_Code)
);
CREATE TABLE db.PRODUCT
(
P_CODE string Not Null,
P_DESCRIPT string NOT NULL,
P_INDATE DATETIME NOT NULL,
P_QOH int64 NOT NULL,
P_MIN int64 NOT NULL,
P_PRICE NUMERIC NOT NULL,
P_DISCOUNT NUMERIC NOT NULL,
V_CODE int64,
CONSTRAINT PRODUCT_V_CODE_FK
FOREIGN KEY (V_CODE) REFERENCES VENDOR (V_CODE)
);
Run Code Online (Sandbox Code Playgroud)
当我使用主键时,出现错误:
不支持主键
对于外键我得到:
表名称“VENDOR”缺少数据集,而请求中未设置默认数据集
无论如何,可以在 BigQuery 中使用 PK 或 FK 吗?如果是,如何?
以下示例将 x 和 y 的主键约束添加到 pk_table 表中:
ALTER TABLE pk_table ADD PRIMARY KEY (x,y) NOT ENFORCED;
Run Code Online (Sandbox Code Playgroud)
以下示例将 my_fk_name 外键约束添加到 fk_table 表中。此示例依赖于现有表 pk_table。
ALTER TABLE fk_table
ADD CONSTRAINT my_fk_name FOREIGN KEY (u, v)
REFERENCES pk_table(x, y) NOT ENFORCED;
Run Code Online (Sandbox Code Playgroud)
请注意,不强制执行键约束,因此它们不会防止重复。它们主要用于帮助优化器 -为什么创建主键和外键?