Skip to content

PostgreSQL DDL API

PostgreSQL SELECT 特性,包括窗口函数、CTE、LATERAL 连接和 RETURNING。

1 class · 4 methods

SELECT

4 methods

PostgreSQL 支持的高级 SELECT 构造。

CREATE TABLE [IF NOT EXISTS] tbl (col type [constraints], ...)

在与当前行相关的滑动行窗口上计算值,不折叠行。

Parameters

NameTypeDescription
tblidentifierTable name.
typedatatypeINT, VARCHAR(n), DATETIME, DECIMAL(p,s), etc.
constraintsconstraintNOT NULL, DEFAULT, AUTO_INCREMENT, PRIMARY KEY.

Returns

void

Example

mysql
CREATE TABLE users (
  id BIGINT AUTO_INCREMENT PRIMARY KEY,
  email VARCHAR(255) NOT NULL UNIQUE,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE tbl ADD [COLUMN] col type | DROP COLUMN col | MODIFY col type

通用表表达式(CTE),命名子查询并在外层 SELECT 中引用。

Parameters

NameTypeDescription
tblidentifierTable to alter.
colidentifierColumn to add, drop or modify.

Returns

void

Example

mysql
ALTER TABLE users
  ADD COLUMN last_login DATETIME NULL,
  MODIFY email VARCHAR(320) NOT NULL;
CREATE [UNIQUE] INDEX name ON tbl (col, ...) [USING BTREE]

LATERAL 连接允许 FROM 子句中的子查询引用前面 FROM 项的列。

Parameters

NameTypeDescription
nameidentifierIndex name.
tblidentifierTable to index.
colcolumn-listIndexed columns.

Returns

void

Example

mysql
CREATE UNIQUE INDEX idx_users_email ON users (email);
CONSTRAINT name PRIMARY KEY|FOREIGN KEY|UNIQUE|CHECK (cols)

返回 INSERT、UPDATE 或 DELETE 影响的行,适用于读取生成的键和触发器。

Parameters

NameTypeDescription
nameidentifierOptional constraint name.
colscolumn-listColumns the constraint applies to.

Returns

void

Example

mysql
CONSTRAINT fk_orders_user
  FOREIGN KEY (user_id) REFERENCES users(id)
  ON DELETE CASCADE ON UPDATE RESTRICT