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
相关推荐
风哥2号5 小时前
数据库教程FGMT51‑PostgreSQL实例管理与参数文件
数据库·postgresql
lusklusklusk7 小时前
Oracle索引组织表,SQLServer聚集索引,Mysql Innodb表的数据行不是在磁盘上像排队一样严格连续地存放
mysql·postgresql·oracle·sqlserver
redfred11 小时前
Outline 部署教程:4 万 Star 自托管知识库,免费替代 Notion(Windows 源码部署完整指南)
postgresql·开源软件·notion
jnrjian14 小时前
公司有CA服务器生成cert key csr
postgresql·redhat
jnrjian14 小时前
EDB CA cert key
postgresql
IvorySQL1 天前
PostgreSQL 日报|在线校验和特性被回退(9 月 17 日)
数据库·人工智能·postgresql
geovindu1 天前
sql:Data Modeling Patterns using PostgreSQL 18
postgresql·数据库开发·数据库架构
l1t2 天前
DeepSeek总结的PostgreSQL 19 发生了什么
数据库·postgresql
TechWJ2 天前
没有公网 IP 也想远程连 PostgreSQL?从本地数据库到固定 TCP 地址完整配置
大数据·数据库·网络安全·postgresql·内网穿透
あ-2 天前
postgres创建只读用户
postgresql