我正在尝试学习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)
);
当我使用主键时,出现错误:
不支持主键
对于我得到的外键:
表名称“VENDOR”缺少数据集,而请求中未设置默认数据集
是否可以在 BigQuery 中使用 PK 或 FK?如果是,怎么办?
以下示例将 x 和 y 的主键约束添加到 pk_table 表中:
ALTER TABLE pk_table ADD PRIMARY KEY (x,y) NOT ENFORCED;
以下示例将 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;
请注意,不强制执行键约束,因此它们不会防止重复。它们主要用于帮助优化器 - 为什么创建主键和外键?
现在bigquery添加了对添加PRIMARY、FOREIGN键作为表约束的支持。 您可以查看以下文档: