mac安装PostgreSQL18笔记

参考资料

复制代码
​

中文文档
http://www.postgres.cn/docs/current/ddl-identity-columns.html
英文文档
https://www.rockdata.net/tutorial/toc/
资料大全
https://gitcode.com/gh_mirrors/aw/awesome-postgres

​

PostgreSQL官网下载

PostgreSQL: Downloadshttps://www.postgresql.org/download/

我用homebrew下载安装失败,于是去官网下载安装,官方推荐的是postgres.app

下载可视化工具pgadmin4

DownloadpgAdmin - PostgreSQL Tools for Windows, Mac, Linux and the Webhttps://www.pgadmin.org/download/pgadmin-4-macos/

配置系统环境变量

psql环境变量

用find /usr -name "psql" 2>/dev/null查找psql位置,发现如下

/Applications/Postgres.app/Contents/Versions/18/bin/psql

打开 ~/.zshrc

输入

复制代码
export PATH="/Applications/Postgres.app/Contents/Versions/18/bin:$PATH"

最后source ~/.zshrc

导入现有数据

如果有sql文件,可用下方命令导入

复制代码
psql -U postgres -d 你的数据库名 -f /Users/sin/ballpen.sql;

比如
psql -U postgres -d sin -f /Users/sin/ballpen.sql;

ballpen.sql内容如下

复制代码
-- =============================================
-- ballpen 表(圆珠笔表)
-- 用于存储圆珠笔产品信息
-- =============================================

-- 创建数据库(如需)
-- CREATE DATABASE ballpen_shop;

-- 切换到目标数据库后执行:
-- \c ballpen_shop

CREATE TABLE IF NOT EXISTS ballpen (
    id              SERIAL          PRIMARY KEY,                          -- 主键ID
    brand           VARCHAR(100)    NOT NULL,                             -- 品牌
    model           VARCHAR(200)    NOT NULL,                             -- 型号
    color           VARCHAR(50)     DEFAULT 'black',                      -- 笔杆颜色
    ink_color       VARCHAR(50)     DEFAULT 'blue',                       -- 墨水颜色
    tip_size        NUMERIC(3,1)    NOT NULL CHECK (tip_size > 0),        -- 笔尖粗细(mm),如 0.5, 0.7, 1.0
    price           NUMERIC(10,2)   NOT NULL CHECK (price >= 0),          -- 价格(元)
    stock           INTEGER         NOT NULL DEFAULT 0 CHECK (stock >= 0), -- 库存数量
    description     TEXT,                                                  -- 商品描述
    is_active       BOOLEAN         DEFAULT TRUE,                          -- 是否上架
    created_at      TIMESTAMP       DEFAULT CURRENT_TIMESTAMP,             -- 创建时间
    updated_at      TIMESTAMP       DEFAULT CURRENT_TIMESTAMP              -- 更新时间
);

-- 索引
CREATE INDEX IF NOT EXISTS idx_ballpen_brand      ON ballpen (brand);
CREATE INDEX IF NOT EXISTS idx_ballpen_tip_size   ON ballpen (tip_size);
CREATE INDEX IF NOT EXISTS idx_ballpen_is_active  ON ballpen (is_active);

-- 更新时间触发器(自动更新 updated_at)
CREATE OR REPLACE FUNCTION update_ballpen_timestamp()
RETURNS TRIGGER AS $$
BEGIN
    NEW.updated_at = CURRENT_TIMESTAMP;
    RETURN NEW;
END;
$$ LANGUAGE plpgsql;

DROP TRIGGER IF EXISTS trg_ballpen_updated_at ON ballpen;
CREATE TRIGGER trg_ballpen_updated_at
    BEFORE UPDATE ON ballpen
    FOR EACH ROW
    EXECUTE FUNCTION update_ballpen_timestamp();

-- =============================================
-- 示例数据
-- =============================================
INSERT INTO ballpen (brand, model, color, ink_color, tip_size, price, stock, description) VALUES
    ('Pilot',   'BL-G2-5',   'black', 'blue',   0.5,  8.50,  100, 'Pilot 百乐 BL-G2-5 按动中性笔 0.5mm'),
    ('Pilot',   'BL-G2-7',   'black', 'blue',   0.7,  8.50,   80, 'Pilot 百乐 BL-G2-7 按动中性笔 0.7mm'),
    ('Uni',     'UM-100-05', 'white', 'black',  0.5,  6.00,  200, 'Uni 三菱 UM-100 中性笔 0.5mm'),
    ('Uni',     'UMN-155',   'black', 'blue',   0.5, 12.00,   50, 'Uni 三菱 UMN-155 按动中性笔 0.5mm'),
    ('M&G',     'AGPJ5501',  'blue',  'blue',   0.5,  3.50,  500, '晨光 AGPJ5501 按动中性笔 0.5mm'),
    ('Zebra',   'JJ15',      'black', 'black',  0.5,  7.00,  150, 'Zebra 斑马 JJ15 按动中性笔 0.5mm'),
    ('Schneider', '805',     'black', 'blue',   0.6, 15.00,   30, 'Schneider 施耐德 805 圆珠笔 0.6mm'),
    ('Parker',  'IM',        'matte', 'blue',   1.0, 198.00,  10, 'Parker 派克 IM 系列圆珠笔 1.0mm');

默认导入至public,如果想改成别的,比如shop,可以先手动创建shop表

创建shop表

复制代码
CREATE SCHEMA IF NOT EXISTS shop;

然后把默认表设置为shop
SET search_path TO shop;

导入sql文件
\i /Users/sin/ballpen.sql
相关推荐
李昊哲小课8 小时前
Ubuntu24.04 PostgreSQL 18 完整安装与配置教程
ubuntu·postgresql
IvorySQL11 小时前
PostgreSQL 日报|复制槽泄漏修复(8 月 6 日)
数据库·postgresql
喜欢的名字被抢了12 小时前
FastAPI 接入异步 PostgreSQL 完成任务 CRUD 与数据库迁移
数据库·postgresql·fastapi
qq210846295312 小时前
PostgreSQL、SQLite、Redis、TDengine
redis·postgresql·sqlite
PC2005-cloud14 小时前
PgVector从入门到实战:用PostgreSQL做向量检索,附SpringBoot+MyBatisPlus整合
数据库·spring boot·postgresql
jaboo1214 小时前
postgresql从入门到精通
数据库·postgresql·langchain
IvorySQL1 天前
PostgreSQL 日报|修复 WAL 归档恢复竞态条件(8 月 5 日)
数据库·postgresql·区块链
你不是我我2 天前
【AI 测评】PostgreSQL主从流复制实战:数据同步、状态验证与故障切换
数据库·postgresql
棒棒的唐2 天前
postgresql集成pgvector
数据库·postgresql
隔窗听雨眠2 天前
Oracle到PostgreSQL迁移实战:pg_hint_plan执行计划控制完全指南
数据库·postgresql·oracle