【发布时间】:2020-06-04 20:11:04
【问题描述】:
我在 SQL 中创建了一个这样的表
create table WEATHER_STATION.Humidade
(
valor_observado int ,
data_observacao date ,
unidade_medida varchar(15),
id_observacao int identity(1,1) primary key,
estacao varchar(30)
foreign key (estacao) references WEATHER_STATION.Pessoa_singular(estacao_nome),
foreign key (estacao) references WEATHER_STATION.Estaçao_meteorologica(localidade)
)
然后,我使用以下代码插入值:
INSERT INTO WEATHER_STATION.Humidade
VALUES (83,'2020-01-24','%','Albergaria(amadora)')
INSERT INTO WEATHER_STATION.Humidade
VALUES (83,'2020-01-23','%','Aveiro')
我得到了这个错误:
INSERT 语句与 FOREIGN KEY 约束“FK__Humidade__estaca__00CA12DE”冲突。冲突发生在数据库“p4g8”、表“WEATHER_STATION.Estaçao_meteorologica”、列“localidade”中。
INSERT 语句与 FOREIGN KEY 约束“FK__Humidade__estaca__7FD5EEA5”冲突。冲突发生在数据库“p4g8”、表“WEATHER_STATION.Pessoa_singular”、列“estacao_nome”中。
我的问题是:一个属性是否可能引用来自不同表的两个外键?
【问题讨论】:
-
可能,是的。但这有意义吗?在大多数情况下,FK 引用另一个表中的主键,该主键通常是整数。 varchar(30) 主键和外键有点不寻常。
标签: sql foreign-keys sql-insert