【发布时间】:2013-12-16 02:16:31
【问题描述】:
我在 postgresql 数据库中有三个表,分别是 tec_configurations、tep_cores 和 tep2tec_bindings。表 tec2tep_bindings 引用前两个表的主键字段。每个表的相关创建语句在下面的 sql sn-ps 2,3 和 4 中列出。我得到下面第一个 sn-p 中指示的错误。你能告诉我如何解决这个错误吗?表 TEC_CONFIGURATIONS 中的“id”字段已经是唯一的,因为它是主键。因此,我看不到收到此错误消息的理由。
片段 1(错误消息):
ERROR: there is no unique constraint matching given keys for referenced table
"tec_configurations"
SNIPPET 2(TABLE tec_configurations):
CREATE TABLE IF NOT EXISTS TEC_CONFIGURATIONS (
ID SERIAL PRIMARY KEY,
TEC_ID INT NOT NULL,
HANDLER_MAC TEXT NOT NULL,
PRIMARY_MAC TEXT,
SECONDARY_MAC TEXT,
TERTIARY_MAC TEXT,
EXPECTED_FLOWS INT DEFAULT 0,
VERSION INT DEFAULT 0,
UUID TEXT DEFAULT NULL );
SNIPPET 3(TABLE tep_cores):
CREATE TABLE IF NOT EXISTS TEP_CORES (
ID SERIAL PRIMARY KEY,
MAC TEXT,
UUID TEXT,
CORE_NO INT DEFAULT 0);
片段 4(表 tec2tep_bindings)
CREATE TABLE IF NOT EXISTS TEC2TEP_BINDINGS (
ID SERIAL PRIMARY KEY,
TEC_ID_FK INT NOT NULL REFERENCES TEC_CONFIGURATIONS(ID),
TEP_CORE_ID_FK INT NOT NULL REFERENCES TEP_CORES(ID),
REPLICA_RANK INT DEFAULT 0);
【问题讨论】:
-
无法在 PostgreSQL 9.1 中重现。你用的是什么版本?
标签: postgresql foreign-keys foreign-key-relationship