oracle 表一的A、B两个字段是联合主键,表二使用表一的A字段作为外键,这样可以吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 表一的A、B两个字段是联合主键,表二使用表一的A字段作为外键,这样可以吗?相关的知识,希望对你有一定的参考价值。
表二单独使用表一的A字段。
不可以。从定义看,外键至少需要父表上A列/A字段是唯一的(UNIQUE约束),如果A、B字段作为联合主键,则不能保证A字段唯一性约束。有矛盾,所以不可以。 参考技术A oracle 表一的A、B两个字段是联合主键,
表二使用表一的A字段作为外键 没意义 参考技术B 数据库上不可以,但你自己的业务系统却可以这样。
从表一的比较更新表二,bigQuery
【中文标题】从表一的比较更新表二,bigQuery【英文标题】:Update table two from comparison on table one, bigQuery 【发布时间】:2019-12-07 06:00:56 【问题描述】:我正在尝试使用标准 SQL 更新 bigquery 中的表,但出现以下错误:查询错误:无法在 [81:7] 处使用不可比较的类型 STRING 和 INT64 执行 IN 子查询
本质上,我有两张桌子。表(a)和表(b)。当在表(b)中而不是表(a)中找到特定记录(flight_number)时,我正在尝试更新表(b)中的列(布尔列)。
UPDATE `HTZ_Analysis.airport_flightrecord` as tableb
SET table(b).In_Airport = False
WHERE table(b).flight_number NOT IN (SELECT 1
FROM table(a)
)
【问题讨论】:
【参考方案1】:检查您要比较的列的表架构。似乎列类型不同,一种是 STRING,另一种是 INT64。我想可能有些航班号会包含字母,所以我会在两列中将change the column type 转换为 STRING。那么它们应该具有可比性。
【讨论】:
以上是关于oracle 表一的A、B两个字段是联合主键,表二使用表一的A字段作为外键,这样可以吗?的主要内容,如果未能解决你的问题,请参考以下文章