我将在7周内浏览7个数据库。
在 PostgreSQL 中,我创建了一个具有串行venue_id列的地点表。
< code>\d场馆的输出
Table "public.venues"
Column | Type | Modifiers
----------------+------------------------+-----------------------------------------------------------
venue_id | integer | not null default nextval('venues_venue_id_seq'::regclass)
name | character varying(255) |
street_address | text |
type | character(7) | default 'public'::bpchar
postal_code | character varying(9) |
country_code | character(2) |
Indexes:
"venues_pkey" PRIMARY KEY, btree (venue_id)
Check constraints:
"venues_type_check" CHECK (type = ANY (ARRAY['public'::bpchar, 'private'::bpchar]))
Foreign-key constraints:
"venues_country_code_fkey" FOREIGN KEY (country_code, postal_code) REFERENCES cities(country_code, postal_code) MATCH FULL
下一步是创建一个用外键引用venue_id的事件表。
我在尝试这个:
CREATE TABLE events (
event_id SERIAL PRIMARY KEY,
title text,
starts timestamp,
ends timestamp,
FOREIGN KEY (venue_id) REFERENCES venues (venue_id));
我得到这个错误:
ERROR: column "venue_id" referenced in forgein key not found
怎么了?
我正在阅读本书的第二版,所以事情可能会略有变化。
要创建表,您必须明确地将venues_id
声明为表中的列,就像其余列一样:
CREATE TABLE events (
event_id SERIAL PRIMARY KEY,
title text,
starts timestamp,
ends timestamp,
venue_id integer, -- this is the line you're missing!
FOREIGN KEY (venue_id)
REFERENCES venues (venue_id) MATCH FULL
);
执行该操作后,将创建该表:
7dbs=# \dt
List of relations
Schema | Name | Type | Owner
--------+-----------+-------+----------
public | cities | table | postgres
public | countries | table | postgres
public | events | table | postgres
public | venues | table | postgres
您还需要初始化外键列。看这里http://www.postgresql.org/docs/current/static/ddl-constraints.html#DDL-CONSTRAINTS-FK来源
我更新了我的尝试,将一些内容保留为CHAR,但仍然得到一个类似的错误:第1行错误:ORA-02091:事务回滚ORA-02291:违反完整性约束(MMM1339.ITEMNO_PHAR_FK)-未找到父密钥 需求的外键都在不同的供应主键中有值,所以我不确定为什么仍然存在问题。
我的应用程序正在尝试外部化所有项目属性,一些属性将位于我的应用程序中,而另一个属性将位于 Windows 中某处的文件夹中。 我将Spring设置为这样执行:-Spring . config . location = file:///C:\ Temp \ config \ application . properties,class path:application . properties 如您
问题内容: 这与这个问题有些相关: 我有一个带有主键的表,并且我有几个表引用该主键(使用外键)。我需要从该表中删除行,在该表中其他任何表(以及其他一些约束)中都未引用主键。 例如: 等等。组中的某些行在任何表中均未引用,因此我需要删除这些行。除此之外,我需要知道如何查找所有在Group中引用给定行的表/行。 我知道我可以查询每个表并检查groupid,但是由于它们是外键,所以我想有一种更好的方法。
我试图将一个新表添加到一个已经存在的数据库中,但它总是给我一个错误“外键定义中的未知列'PRODUCT_ID'”。 如有任何帮助,我将不胜感激
问题内容: 在PostgreSQL中,我有一个数据库,我打算进行以下表声明: 一切正常,除了在创建最后一个表(更正)时出现以下错误: 错误:没有唯一的约束匹配给定键的引用表“提交” 我对更正表的打算是对每个提交都有唯一的更正,但是一个提交可以(也可以不)具有更正。 我该如何解决这个错误?是设计问题还是表声明错误? 问题答案: 外键约束不关心所引用的列是否在引用另一列本身。但是引用的列 必须 是唯一
我创建了一个带有主键(UsersID、AccountsID)的帐户/用户表,如下所示。我是否应该为Users表添加索引?