Ste*_*and 5 postgresql foreign-key syntax
我想知道这个例子
CREATE TABLE cities (
city varchar(80) primary key,
location point
);
CREATE TABLE weather (
city varchar(80) references cities(city),
temp_lo int,
temp_hi int,
prcp real,
date date
);
Run Code Online (Sandbox Code Playgroud)
city
as的定义在varchar(80)
这里重复。是否有允许不重复的 PostgreSQL 语法varchar(80)
,仅基于references cities(city)
以创建天气表?
没有办法做到这一点。而且,坦率地说,我认为没有必要。
请记住,引用列和引用列不必共享相同的数据类型。它们只需要=
在它们之间定义一个运算符。
如果您的目标是缩短语法,则可以省略引用列的列(或列列表)(如果它是 PK):
CREATE TABLE weather (
city text references cities,
temp_lo int,
...
Run Code Online (Sandbox Code Playgroud)
示例中的数据类型兼容但不相同(text
vs. varchar(80)
),假设引用的列是表的主键cities
。
我引用手册CREATE TABLE
:
如果省略 refcolumn,则使用 reftable 的主键
归档时间: |
|
查看次数: |
692 次 |
最近记录: |