上传架构文件的目的
Purpose of uploading a schema file
我第一次尝试使用 postgres 制作 table,我看到的例子有点让我失望。在创建模式时,我有一个包含我的模式的 schema.sql 文件,如下所示:
CREATE TABLE IF NOT EXISTS orders
(
order_id INTEGER NOT NULL,
order_amount INTEGER NOT NULL
);
COMMENT ON COLUMN orders.order_id IS 'The order ID';
COMMENT ON COLUMN orders.order_amount IS 'The order amount';
现在我将通过执行以下操作来上传该架构:
psql -d mydb -f /usr/share/schema.sql
现在是时候创建 table 我想做这样的事情了:
create table schema.orders(
order_id INT NOT NULL,
order_amount INT NOT NULL
);
schema.sql
文件的上传让我感到困惑。文件中的所有信息用于什么。我认为通过上传模式我提供了创建 table 的模型,但 运行 create table schema.orders
似乎正在这样做。
你所说的"upload"实际上是在执行一个脚本文件(里面有SQL个DDL命令)
I thought by uploading the schema i'm providing the model to create the table
您正在通过执行该脚本创建 table。第二个 CREATE TABLE
命令几乎但不完全相同。关键区别(除了缺少的注释):schema-qualified table 名称。您的架构恰好被命名为 "schema",这是一个非常糟糕的主意,但允许。
现在,术语 "schema" 用于两种不同的事物:
- 使用 SQL DDL 命令创建的通用数据库结构。
- 一个
SCHEMA
类似于文件系统中的目录。
两者的术语恰好相同,但一个与另一个无关。
根据模式搜索路径,第一次调用 CREATE TABLE
可能会也可能不会在不同的模式中创建另一个 table。你需要了解搜索路径在Postgres中的作用:
- How does the search_path influence identifier resolution and the "current schema"
我第一次尝试使用 postgres 制作 table,我看到的例子有点让我失望。在创建模式时,我有一个包含我的模式的 schema.sql 文件,如下所示:
CREATE TABLE IF NOT EXISTS orders
(
order_id INTEGER NOT NULL,
order_amount INTEGER NOT NULL
);
COMMENT ON COLUMN orders.order_id IS 'The order ID';
COMMENT ON COLUMN orders.order_amount IS 'The order amount';
现在我将通过执行以下操作来上传该架构:
psql -d mydb -f /usr/share/schema.sql
现在是时候创建 table 我想做这样的事情了:
create table schema.orders(
order_id INT NOT NULL,
order_amount INT NOT NULL
);
schema.sql
文件的上传让我感到困惑。文件中的所有信息用于什么。我认为通过上传模式我提供了创建 table 的模型,但 运行 create table schema.orders
似乎正在这样做。
你所说的"upload"实际上是在执行一个脚本文件(里面有SQL个DDL命令)
I thought by uploading the schema i'm providing the model to create the table
您正在通过执行该脚本创建 table。第二个 CREATE TABLE
命令几乎但不完全相同。关键区别(除了缺少的注释):schema-qualified table 名称。您的架构恰好被命名为 "schema",这是一个非常糟糕的主意,但允许。
现在,术语 "schema" 用于两种不同的事物:
- 使用 SQL DDL 命令创建的通用数据库结构。
- 一个
SCHEMA
类似于文件系统中的目录。
两者的术语恰好相同,但一个与另一个无关。
根据模式搜索路径,第一次调用 CREATE TABLE
可能会也可能不会在不同的模式中创建另一个 table。你需要了解搜索路径在Postgres中的作用:
- How does the search_path influence identifier resolution and the "current schema"