postgresql DDL脚本

发布于:2025-06-24 ⋅ 阅读:(12) ⋅ 点赞:(0)

在PostgreSQL中,数据定义语言(DDL)脚本用于定义、修改或删除数据库的结构。DDL 操作包括创建表、修改表结构、删除表等。以下是几种常见的DDL操作示例以及如何在脚本中实现它们。

1. 创建表

CREATE TABLE employees (
    employee_id SERIAL PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100) UNIQUE,
    hire_date DATE
);

2. 修改表结构

添加列
ALTER TABLE employees ADD COLUMN department_id INT;

 修改列数据类型

ALTER TABLE employees ALTER COLUMN email TYPE VARCHAR(150);

重命名列 

ALTER TABLE employees RENAME COLUMN email TO email_address;

删除列 

ALTER TABLE employees DROP COLUMN department_id;

删除表 

DROP TABLE employees;

  创建索引

CREATE INDEX idx_employee_email ON employees (email_address);

修改索引(例如重命名索引)

DROP INDEX idx_employee_email;
CREATE INDEX idx_new_employee_email ON employees (email_address);

创建序列和主键序列自动增长(对于自增字段) 

CREATE SEQUENCE employee_id_seq;
ALTER TABLE employees ALTER COLUMN employee_id SET DEFAULT nextval('employee_id_seq');
ALTER TABLE employees ALTER COLUMN employee_id SET DEFAULT nextval('employee_id_seq'); -- 如果序列已存在,则需要手动设置默认值,因为 SERIAL 自动处理序列的创建和默认值设置。通常,使用 SERIAL 会自动处理这些。

 添加外键约束

ALTER TABLE employees ADD CONSTRAINT fk_department FOREIGN KEY (department_id) REFERENCES departments(department_id);

删除外键约束(和索引等其他约束)

ALTER TABLE employees DROP CONSTRAINT fk_department; -- 外键约束名可能需要根据具体情况调整。

或者通过索引名删除外键约束(不推荐,除非你知道索引名):

DROP INDEX fk_department;


网站公告

今日签到

点亮在社区的每一天
去签到