Postgres创建一个带有外键数组的表

Ror*_*ach 4 sql postgresql foreign-keys

我正在制作一个名为"routes"的表.我希望它能够包含一个航班列表.航班的详细信息在航班表中.我希望"航班"成为航班表中的一系列外键ID.所以,我有这个代码:

CREATE TABLE routes (
id SERIAL PRIMARY KEY,
flight integer[] ELEMENT REFERENCES flights,
user CHARACTER VARYING(50)
);
Run Code Online (Sandbox Code Playgroud)

但是,它给出了错误:

ERROR:  syntax error at or near "ELEMENT"
LINE 2:     id SERIAL PRIMARY KEY, flight integer[] ELEMENT REFERENC...
Run Code Online (Sandbox Code Playgroud)

我正在使用psql(9.3.10)

我使用过这个:http: //blog.2ndquadrant.com/postgresql-9-3-development-array-element-foreign-keys/作为参考,但是当我复制该语法时,它会给出这个错误.

这是我用作参考的语法:

CREATE TABLE races (
   race_id integer PRIMARY KEY,
   title text,
   race_day DATE,
   ...
   practice1_positions integer[] ELEMENT REFERENCES drivers,
   practice2_positions integer[] ELEMENT REFERENCES drivers,
   practice3_positions integer[] ELEMENT REFERENCES drivers,
   qualifying_positions integer[] ELEMENT REFERENCES drivers,
   final_positions integer[] ELEMENT REFERENCES drivers
);
Run Code Online (Sandbox Code Playgroud)

Jak*_*nia 6

你链接到的博客显然只是一个为9.3提出的补丁.它没有进入9.3和9.4您可以梳理邮件列表并尝试自己修补您的安装,或者您只需更改您的架构.

如果您想了解该功能发生的详细信息,您可能应该邮寄作者.

  • 违反1NF有一个缺点:例如:在{update,delete} +上加上相关的无法创建索引(或UNIQUE约束......)的相关问题很难使FK可级联.数组元素. (2认同)