首页
统计
留言
Search
1
Konsole 和 oh-my-zsh 的配置与使用
2,021 阅读
2
wsl2使用windows下v2ray的代理
1,493 阅读
3
docker启动报错
1,050 阅读
4
ubuntu有些软件无法使用搜狗输入法
927 阅读
5
Kubuntu 配置多桌面快捷键
768 阅读
全部
PHP
Linux
软路由
杂项
Sql
Go
登录
Search
标签搜索
kubuntu
docker
mysql
pgsql
git
csv
shell
wine
linux
oh-my-zsh
wps
gost
起名
redis
ip
crontab
mac
nginx
wss
docker-compose
JyPony
累计撰写
57
篇文章
累计收到
20
条评论
首页
栏目
全部
PHP
Linux
软路由
杂项
Sql
Go
页面
统计
留言
搜索到
49
篇与
的结果
2026-07-20
PostgreSQL 导入数据后自增主键冲突(Unique violation)修复指南
PostgreSQL 导入数据后自增主键冲突(Unique violation)修复指南🛑 问题现象从线上环境备份并导入到新环境或本地后,在执行 INSERT 插入新数据时,系统抛出类似以下错误:ERROR: duplicate key value violates unique constraint "xxxx_pkey"DETAIL: Key (id)=(1) already exists.🔍 核心原因这是因为 PostgreSQL 的自增序列(Sequence)断档导致的。导入行为:在导入线上数据时,SQL 脚本中通常包含明确的 id 值(例如已存在 id 为 1 到 100 的数据)。序列未同步:数据虽然成功写入,但 PostgreSQL 内部控制自增计数的计数器(Sequence)并没有随之递增,依旧停留在初始值(通常是 1)。主键冲突:当新环境发生不带 id 的插入操作时,Postgres 尝试分配 id=1,从而与表中已有的 id=1 数据发生冲突,触发唯一约束异常。🛠️ 批量修复方案(推荐)既然全库有多个表都出现了该问题,可以通过以下两步走策略,一次性自动生成并运行全库的修复脚本。第一步:生成全库修复 SQL请在你的数据库管理工具(如 Navicat、DataGrip、pgAdmin 或 psql 终端)中,运行以下查询语句。它会自动扫描 public 模式下所有使用了自增序列的表,并拼接好重置命令:SELECT 'SELECT setval(' || quote_literal(pg_get_serial_sequence(table_name, column_name)) || ', COALESCE(MAX(' || quote_ident(column_name) || '), 0) + 1, false) FROM ' || quote_ident(table_name) || ';' AS fix_sequence_sql FROM information_schema.columns WHERE table_schema = 'public' AND column_default LIKE 'nextval%';第二步:执行生成的修复脚本运行完上一步的 SQL 后,你会获得一组查询结果(每一行都是一条独立的 SELECT setval(...) 语句)。全选并复制这些结果行。在数据库工具中新建一个 SQL 窗口,将复制的内容粘贴并全部执行。📝 附:单表手动修复命令如果你只想临时快速修复某一个特定的表(例如 product_collection_tasks),可以直接运行以下命令:SELECT setval( pg_get_serial_sequence('product_collection_tasks', 'id'), COALESCE(MAX(id), 0) + 1, false ) FROM product_collection_tasks;💡 建议:为了避免以后频繁出现此问题,在线上导出数据时,如果是使用 pg_dump,建议检查是否开启了完整序列状态导出的相关参数。
2026年07月20日
16 阅读
0 评论
0 点赞
2026-02-04
vsode 配置
先更新源sudo apt update安装最新版 VS Code(Microsoft 官方源)wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list rm -f packages.microsoft.gpg然后安装sudo apt update sudo apt install code安装 JetBrains Mono字体官方最简单的一键脚本(适用于 Linux):/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/install_manual.sh)"检查是否安装fc-list | grep -i "JetBrains Mono"配置字体settings.json 推荐加这些(Ctrl+, 打开设置 → 右上角打开 JSON):{ "editor.fontSize": 16, "workbench.colorTheme": "PhpStorm Dark Islands", "editor.fontFamily": "'JetBrains Mono', Consolas, 'Courier New', monospace", "editor.fontLigatures": true, "window.zoomLevel": 1, }安装扩展按 Ctrl+Shift+X 打开扩展面板 → 搜上面名字 → Install。Chinese (Simplified) Laravel PHP Intelephense PhpStorm Dark Theme JetBrains IDE Keymap
2026年02月04日
44 阅读
0 评论
0 点赞
2025-12-19
pgsql 用一个csv文件的数据,去表中查询结果并导出
1. 创建临时表CREATE TEMP TABLE tmp_uids (user_id BIGINT PRIMARY KEY);2. 把csv数据导入到临时表中\copy tmp_uids FROM '/tmp/uids_goods_20251215.csv' CSV;3. 生成数据(去重)到/tmp/result_goods_ids.csv\copy (SELECT DISTINCT b.goods_id FROM tmp_uids t JOIN public.goods b ON b.user_id = t.user_id AND b.goods_id != 0 ORDER BY b.goods_id) TO '/tmp/result_goods_ids.csv' WITH (FORMAT CSV, HEADER FALSE, ENCODING 'UTF8');4. 生成数据(不去重)到/tmp/result_goods_ids.csv\copy (SELECT b.goods_id FROM tmp_uids t JOIN public.goods b ON b.user_id = t.user_id AND b.goods_id != 0 ORDER BY b.goods_id) TO '/tmp/result_goods_ids.csv' WITH (FORMAT CSV, HEADER FALSE, ENCODING 'UTF8');5. 删除临时表DROP TABLE IF EXISTS tmp_uids;
2025年12月19日
60 阅读
0 评论
0 点赞
2025-09-15
自建邮箱pmail
仓库地址https://github.com/Jinnrry/PMail下载pmailcurl -L -O https://github.com/Jinnrry/PMail/releases/download/v2.8.7/linux_amd64.zip创建自启服务sudo vi /etc/systemd/system/pmail.service[Unit] Description=pmail [Service] ExecStart=/data/software/pmail/pmail_linux_amd64 Restart=always [Install] WantedBy=multi-user.target配置自启sudo systemctl enable pmail启动服务sudo systemctl start pmail特别注意25 端口可能被 CentOS 7 自带的 Postfix(master 进程)占用了,而且只监听在 localhost(127.0.0.1 和 ::1),说明它只是系统默认安装的空壳 MTA,几乎没啥用。 一键彻底解决(推荐做法,干净利落) Bash # 停掉并永久禁用系统自带的 postfix systemctl stop postfix systemctl disable postfix # 确认 25 端口已空 ss -ltnp | grep :25 # 应该什么都不输出 # 现在重启 pmail,它就能成功绑定 25 端口了 systemctl restart pmail systemctl status pmail
2025年09月15日
100 阅读
0 评论
0 点赞
2024-11-11
linux 官方微信终于发布了beta4.0
官方地址 https://linux.weixin.qq.com/ ubuntu微信地址 https://archive2.kylinos.cn/DEB/KYLIN_DEB/pool/main/deb/wechat/wechat-beta_4.0.0.21_amd64.deb
2024年11月11日
287 阅读
0 评论
0 点赞
1
2
...
10