如何在 PostgreSQL 中添加外键

How to add foreign key in PostgreSQL

我创建的第一个 table 名为 'bookstore',其中主键是 book_name:

create table bookstore (book_name varchar primary key, author varchar, price decimal);

我正在尝试创建一个名为 'name' 的第二个 table,其中名称是主键。我想将此主键 - author.name 作为 bookstore.author 的外键。

create table author (name varchar primary key, place varchar,
                    constraint fk_author_bookstore foreign key(name) references bookstore(author));

但错误是:错误:没有与给定键匹配的引用 table“书店”的唯一约束 SQL 状态:42830

我是SQL的新手,所以,希望得到一些帮助。如果可以,请写出正确的代码。 谢谢

作者 table 中的姓名列是主键,它在书店 table 中作为外键引用。

-- PostgreSQL (v11)

create table author (name varchar primary key, place varchar);

create table bookstore (book_name varchar primary key, author varchar, price decimal
, CONSTRAINT fk_author_bookstore
      FOREIGN KEY(author) 
      REFERENCES author(name));

请从urlhttps://dbfiddle.uk/?rdbms=postgres_11&fiddle=8394f796433ed8bc170c2889286b3fc2

检查

在table创建后添加外键

-- PostgreSQL(v11)
ALTER TABLE bookstore
      ADD CONSTRAINT fk_author_bookstore FOREIGN KEY (author) 
          REFERENCES author (name);

请检查 url https://dbfiddle.uk/?rdbms=postgres_11&fiddle=d93cf071bfd0e3940dfd256861be813c