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
相关推荐
瀚高PG实验室11 小时前
PostgreSQL pg_basebackup 和 pg_rewind 可覆盖源端超级用户选择的无关文件HGVE-2026-E010
数据库·postgresql·瀚高数据库
张文君18 小时前
ubuntu26.04从ext4改成raid1+lvm启动
数据库·postgresql
IvorySQL19 小时前
倒计时 6 天!PGConf.Asia 2026 演讲征集即将截止
数据库·人工智能·postgresql
触底反弹1 天前
🚀 Next.js 全栈项目数据库连接实战:Drizzle ORM + Supabase 从零到跑通
postgresql·orm·next.js
雪花凌落的盛夏1 天前
PostgreSQL 14 主备集群实战部署教程:流复制 + 双机 WAL 归档 + 自动化备份
数据库·postgresql·自动化
像风一样自由20201 天前
14.什么时候用pgvector什么时候单独部署Milvus
postgresql·大模型·微调·milvus
IvorySQL2 天前
PostgreSQL 日报|PG19 外键快速路径隐患已修复(8 月 23 日)
数据库·postgresql
风哥2号2 天前
PostgreSQL数据库恢复工具FGPDU(FGEDU PostgreSQL DUL)
数据库·postgresql
像风一样自由20202 天前
13.pgvector入门用PostgreSQL直接实现向量检
人工智能·postgresql·大模型·rag·智能体
JavaPub-rodert2 天前
Ontop 详解:不搬数据库,也能把 MySQL / PostgreSQL 变成知识图谱
数据库·mysql·postgresql