我正在使用 SymmetricDS 数据库复制软件跨数据库复制表。
我为 PostgreSQL 创建了这个 XML 定义的表:
<table name="ServiceItem">
<column name="ServiceItemID" type="INTEGER" required="true" primaryKey="true"/>
<column name="ParentItemID" type="INTEGER" />
<foreign-key name="FK_ServiceItem_ServiceItem" foreignTable="ServiceItem">
<reference local="ServiceItemID" foreign="ParentItemID" />
</foreign-key>
</table>
我希望所有parentItemID
值都必须存在于ServiceItemID
列中,这就是外键的意义所在。
但是当我加载它时,我从 SymmetricDS 收到了这个错误:
[] - JdbcSqlTemplate - ERROR: there is no unique constraint matching given keys
for referenced table "ServiceItem". Failed to execute: ALTER TABLE "ServiceItem"
ADD CONSTRAINT "FK_ServiceItem_ServiceItem" FOREIGN KEY ("ServiceItemID")
REFERENCES "ServiceItem" ("ParentItemID")
如果我删除外键,一切都会按预期进行。此错误消息使我感到困惑,我不确定自己做错了什么。这是什么意思?