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
相关推荐
IvorySQL16 小时前
PG 日报|新增 VACUUM 全维度统计信息补丁迭代
数据库·人工智能·postgresql·ivorysql
运维老郭17 小时前
PostgreSQL编译安装实战
运维·postgresql
l1t1 天前
DeepSeek总结的RegreSQL 2.0测试通过了。计划却没通过。
linux·数据库·postgresql
ls_elect1 天前
PostgreSQL 18.4 SCRAM-SHA-256 认证故障诊断及修复办法
linux·数据库·postgresql
IvorySQL2 天前
PG 日报|社区讨论重构 pg_hba 配置文件格式
数据库·人工智能·postgresql·重构·ivorysql
weixin_307779132 天前
Linux下Docker Compose里运行PostgreSQL数据库故障诊断Shell脚本
linux·运维·数据库·docker·postgresql
打工的小王2 天前
PostgreSQL
数据库·postgresql
IvorySQL2 天前
PG 日报|新增 VFD 缓存监控视图,精细化数据库调优
大数据·数据库·人工智能·缓存·postgresql·区块链
禁默2 天前
没有公网IP也能连数据库:把内网PostgreSQL开放给远程联调
数据库·tcp/ip·postgresql·cpolar