SuperAPI AI 工具集

postgres-syntax-dml-ddl

数据与分析

查看项目

更新于 10-15 22:18

技能介绍

该技能面向 PostgreSQL 日常 SQL 编写,覆盖 CREATE/ALTER/DROP TABLE 等 DDL 与 INSERT/UPDATE/DELETE/TRUNCATE 等 DML。

主要能力与要点:

  • 事务性 DDL:用 BEGIN; ALTER TABLE ...; CREATE INDEX ...; ROLLBACK; 可原子回滚整个结构变更。例外:CREATE INDEX CONCURRENTLY、REINDEX CONCURRENTLY、DROP INDEX CONCURRENTLY、DETACH PARTITION ... CONCURRENTLY、ALTER TYPE ... ADD VALUE、ALTER SYSTEM、VACUUM、CREATE DATABASE 不能在事务中执行。
  • RETURNING:INSERT、UPDATE、DELETE 及 v17+ 的 MERGE 可在同一往返返回受影响行,替代“先 INSERT 再 SELECT 取回生成 id”的写法。
  • 自增主键:始终使用 GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY(v10 起,SQL 标准),不要用 serial / bigserial / smallserial;后者会创建独立序列,需要单独授予 USAGE,且无法设为 GENERATED ALWAYS。
  • 生成列:GENERATED ALWAYS AS (expr) STORED 在写入时物化,v15-17 仅支持该形式(虚拟列在 v18 提供)。

使用方式与场景:新建表选择主键类型、将 serial 迁移为 IDENTITY、需要返回数据时使用 RETURNING、用 ALTER TABLE 加列/约束、用 TRUNCATE 清空表并选择 RESTART IDENTITY 或 CONTINUE IDENTITY。可分领域包括:CRUD 语句编写、表结构变更、数据清理与批量删除、测试夹具重置。

限制:零停机迁移、UPSERT/MERGE 深入、COPY 批量加载、内置类型/JSONB/数组等内容由其他技能覆盖,不在本技能范围。资料未提供安装命令、收费信息或具体平台支持情况。