小编Sté*_*ane的帖子

如何列出 PostgreSQL 中的所有模式?

使用 PostgreSQL v9.1 时,如何使用 SQL 列出所有模式?

我期待着以下内容:

SELECT something FROM pg_blah;
Run Code Online (Sandbox Code Playgroud)

schema postgresql postgresql-9.1

340
推荐指数
4
解决办法
64万
查看次数

如何插入包含外键的行?

使用 PostgreSQL v9.1。我有以下表格:

CREATE TABLE foo
(
    id BIGSERIAL     NOT NULL UNIQUE PRIMARY KEY,
    type VARCHAR(60) NOT NULL UNIQUE
);

CREATE TABLE bar
(
    id BIGSERIAL NOT NULL UNIQUE PRIMARY KEY,
    description VARCHAR(40) NOT NULL UNIQUE,
    foo_id BIGINT NOT NULL REFERENCES foo ON DELETE RESTRICT
);
Run Code Online (Sandbox Code Playgroud)

假设第一个表foo是这样填充的:

INSERT INTO foo (type) VALUES
    ( 'red' ),
    ( 'green' ),
    ( 'blue' );
Run Code Online (Sandbox Code Playgroud)

有没有办法bar通过引用foo表轻松插入行?或者我必须分两步完成,首先查找foo我想要的类型,然后在其中插入一个新行bar

这是一个伪代码示例,显示了我希望可以完成的工作:

INSERT INTO bar (description, foo_id) VALUES
    ( …
Run Code Online (Sandbox Code Playgroud)

postgresql foreign-key insert postgresql-9.1

77
推荐指数
3
解决办法
37万
查看次数

我应该创建枚举还是单独的标志?

我正在创建一个新的数据库表,用于存储产品图片。我想确定图片中代表的产品“类型”。假设我们有所有产品的 3 个一般类别:

  • 桌子,
  • 椅子,
  • 和灯。

我最好创建 3 个布尔列is_tableis_chair、 和is_lamp

或者我最好创建一个枚举,然后为该枚举使用单个列:

CREATE TYPE product_type AS ENUM ('table', 'chair', 'lamp' );
Run Code Online (Sandbox Code Playgroud)

(请注意,对于我们存储的工程产品图片,可以保证产品/图片永远不会符合 2 种类型。它必须始终是 1 种非常具体的类型。)

database-design

2
推荐指数
1
解决办法
602
查看次数