有什么方法可以在 PostgreSql 中将数组引用到另一个 table 吗?我正在通过获取错误来做到这一点

is there any way to reference array to another table in PostgreSql?I am doing it by getting error

CREATE TABLE destinations(code varchar(80) PRIMARY KEY,
                          name varchar(80),
                          updated_at varchar(80),
                          latitude varchar(80),
                          longitude varchar(80),
                          country varchar(80) references countries(code),
                          parent varchar(80) references destinations(code),
                          regions int[] ELEMENT REFERENCES regions);

参考中提到的所有表格都存在。

我正在使用 PostgreSQL 版本 12。

我遇到了这个错误

这是无效的 SQL 语法,并且无法在数组元素上设置外键。

您应该使用适当的规范化关系设计,例如

CREATE TABLE destinations(
   code varchar(80) PRIMARY KEY,
   name varchar(80),
   updated_at varchar(80),
   latitude varchar(80),
   longitude varchar(80),
   country varchar(80) references countries(code),
   parent varchar(80) references destinations(code)
);

CREATE TABLE destinations_regions (
   regions int REFERENCES regions NOT NULL,
   code varchar(88) REFERENCES destinations NOT NULL,
   PRIMARY KEY (regions, code)
);

第二个table实现m对n关系。

这样会更快更有效。