分类下相关文章
2025-11-08 · 阅读 252 · 字数 1735
公司人事管理系统开发完成之后,就需要导入初始数据。例如,员工花名册。 人事部门手头有一个 Excel 表格,包含了所有员工的基本信息,包括姓名、工号、部门、职位等。 当然,主要目的是将既有员工的员工编号录入系统,后续新入职的则会自动按照规则生成员工编号。 而我又承担了这枯燥繁琐的工作任务😅 之前发过一篇笔记,讨论员工编号的生成规则,大家讨论得还挺热烈,参见前文 人事管理系统开发之三,员工编号号批量生成 🍎 花名册导入方案 方案一:自动将 Excel 转换成 SQL 插入语句,直接导入。这个方案,不太行,因为涉及到子公司和部门的关系,简单的插入语句无法处理这些复杂的逻辑。 方案二:编写一个数据 ...
2025-11-06 · 阅读 546 · 字数 1077
平时经常要从数据库中导出大量数据,以便在 Excel 或者 WPS 表格中进行分析和处理。 之前一直是用 Excel 格式导出数据,最近尝试用 CSV 格式导出,发现稍微复杂一点的数据,CSV 格式就会出现各种问题 😅。 所以最后放弃使用 mysqldump 直接导出 CSV 文件,还是用 golang 代码生成 Excel 文件,虽然代码复杂了一点,但是导出的数据在 Excel 或 WPS 表格中打开时,没有任何问题。这里记录一下两种文件格式的区别: CSV 是什么? CSV(Comma-Separated Values,逗号分隔的数据)是一种简单的文本文件格式,用于存储表格数据。每一行代表 ...
2025-11-02 · 阅读 292 · 字数 688
需要将 MySQL 数据库中的某个表,导出成 CSV 文件格式。方便在 Excel 中查看和修改,然后再导入回数据库。 突然感觉智能表格才是应用的未来。。。因为大家还是习惯在 Excel 中查看和修改数据。 尝试了几种方法,最终发现还是 mysqldump 命令最方便。 mysqldump 导出 CSV 文件 sudo mysqldump -u username -p \ --tab=/var/lib/mysql-files/ \ --fields-terminated-by=',' \ --fields-enclosed-by='"' \ db_name table ...
2025-10-27 · 阅读 318 · 字数 1122
继续前文 使用 gobackup 自动将 MySQL 数据库备份到七牛云私有空间,在本地测试了 gobackup 的基本功能之后,今天在几台线上服务器,包括阿里云和腾讯云的各种服务器,依次部署了 gobackup 备份服务。这里记录一下一些踩坑的地方。 消息通知设置 用 163 邮箱设置了邮件通知,测试失败日志如下: 2025/10/27 09:32:58 [Notifier] Running 1 Notifiers 2025/10/27 09:33:18 [Notifier] EOF 从 github issue 看,似乎是不支持 TLS: When send mail via port ...
2025-10-25 · 阅读 536 · 字数 2375
现在后台开发和运维都是我一个人,所以服务器上的 MySQL 数据库备份也只能自己来做了。 由于服务分散在多台服务器上,并且有几十个数据库需要备份,手动备份实在是太麻烦了。 需要一套自动化的备份流程。定时将数据库导出,并存储到云存储空间中,例如七牛云存储或者阿里云 OSS 上。 备份方案的选择 我昨天纠结了半天,到底用什么方案或者工具来做数据库的自动备份: 手写 shell 脚本。这个很麻烦,因为数据库太多,不同服务对应的云存储还不一样。逻辑复杂,不适合用 shell 脚本来写。 Python 脚本。本来是都开始动手要写了,但是登录了一台服务器,发现居然是 Ubuntu 18.04 系统,Py ...
2025-03-10 · 阅读 1083 · 字数 367
有个开发了一个多月的大赛报名系统终于要上线了。上线前有一项重要的任务就是清理 MySQL 数据库中的测试数据。 简单粗暴的所有表都 truncate 一遍是不行的。因为还有一些是配置项表,和数据字典表,清空了就白忙活了。所以,需要记录哪些表是可以清理的,哪些是不行。 😅 使用 truncate 还是 delete 清理前,还有一个重要的概念。就是究竟是用 truncate 还是 delete 来清理数据表。 印象中,好多年前遇到过这个问题,还被 truncate 坑过一次。因为如果部分表用 truncate,而关联表不用的话,会导致数据错乱。原因是 truncate 会导致主键自增 ID 重置 ...
2025-03-01 · 阅读 1781 · 字数 534
周五总是充满了意外,先是一个还没经过完全测试的大赛系统被甲方抢先上线,吓个半死; 然后发现一台服务器的上磁盘空间满了。。。😱 为了快速清理磁盘空间,顺序清理了: Nginx 日志 Web 框架日志 系统日志 但是也只能勉强清理出来不到 5G。 然后 使用 ncdu 命令分析 linux 磁盘空间占用 意外的发现 MySQL 目录下的 binlog 占用了近 100G。 之前一天大概 1~2G 的日志,但是这个周飙到了每天 7~8G 。。。 紧急清理 可以通过 MySQL console 中,使用 SQL 清理某个编号之前的 binlog 日志文件: 例如,清理 100 编号前的 binlo ...
2025-02-27 · 阅读 1196 · 字数 376
我想将 MySQL 返回的中文数据按照拼音进行排序并返回,例如,省份列表: Order("CONVERT(province USING gbk) COLLATE gbk_chinese_ci") 这是 golang gorm 的写法。 但是会有一个问题,就是对于多音字的处理。看一下返回: "安徽省", "北京市", "福建省", "甘肃省", "广东省", "广西壮族自治区", "贵州省& ...
2024-12-31 · 阅读 1465 · 字数 363
我想将一个 Excel 中的数据导入到 MySQL 数据表,首先,将 Excel 转成了 CSV 文件。 但是不知道为啥,MySQL Workbench 的 Table Data Import Wizard 选中 CSV 文件之后就崩溃。 于是我想为何不用 Github Copilot 生成 SQL 来处理呢?正好试试 Chat 功能。 非常 nb,稍微修改一下就能直接使用。你可能会觉得,这跟直接向 chatgpt,或者豆包之类的 AI 问问题,得到答案没有什么不同啊?但是,copilot 加入了文件 context 之后,就能精准的把字段都识别出来了,省去了手工输入字段的麻烦。 Copil ...
2024-11-15 · 阅读 1633 · 字数 299
昨天在翻一本 MySQL 书籍的时候,发现 MySQL 8.0 之后,默认的数据库字符集已经变成了 utf8mb4。 而我这么多年一直还是习惯性的新建数据库时,手动指定 utf8mb4 字符集和 collation 。。。看来以后可以省去这个多余的操作了。 The default MySQL server character set and collation are utf8mb4 and utf8mb4_0900_ai_ci, but you can specify character sets at the server, database, table, column, and st ...
2024-09-25 · 阅读 2170 · 字数 397
例如,我想统计过去一年内,每个月发布的博客数量。 即,查询 MySQL 表中过去 12 个月内,按月统计记录条数,基于 created_at 字段。 MySQL SQL 语句 SELECT YEAR(created_at) AS year, MONTH(created_at) AS month, COUNT(*) AS count FROM article WHERE created_at >= DATE_SUB(CURDATE(), INTERVAL 12 MONTH) GROUP BY YEAR(created_at), MON ...
2023-06-21 · 阅读 3196 · 字数 292
没想到这么多年还是要继续写微信小程序会员卡开卡、扣卡这种逻辑,又是脑子炸裂的一天。 排序需求 会员卡使用状态字段,在数据库中的对应值如下 Status int // 卡状态。0 待使用; 1 已使用; 2 使用完; 3 已退卡; 4 退卡中 如果想按照如下顺序排序: 待使用 已使用 退卡中 使用完 已退卡 那么就不能直接使用 order by status asc 这种的方式。 指定值排序 解决方法是使用 SELECT * FROM user_card ORDER BY FIELD(status, 0, 1, 4, 2, 3) 注意: 如果字段包含的值不在指定的值列表中,则该字段的值 ...
2022-03-17 · 阅读 7729 · 字数 332
在做的一个财务预算管理小程序部门支出流水功能,需要能查询出指定月份的财务流水数据。 MySQL 数据库中存储了财务支出条目发生的日期,需要能通过年月来过滤查询。 例如,我要查询 2022 年 3 月份的所有财务数据。 方法一(推荐) SELECT * FROM financial_history WHERE `date` BETWEEN '2022-03-01' AND LAST_DAY('2022-03-01') MySQL LAST_DAY 函数返回当前 date 或 datetime 类型值对应月份的最后一天。 MySQL LAST_DAY() returns the last d ...
2021-11-05 · 阅读 6376 · 字数 265
今天在 MySQL 中建表时,报错 ERROR 1170 (42000): BLOB/TEXT column 'title' used in key specification without a key length 从错误信息字面上看,是 text 类型作为唯一索引时,必须指定长度。 出错的建表 SQL CREATE TABLE `question` ( `id` INT NOT NULL AUTO_INCREMENT, `title` TEXT NULL, `answers` VARCHAR(255) NULL, `created_at` DATETIME NULL ...
2021-06-01 · 阅读 9549 · 字数 148
在开发时,经常要将最新的 MySQL 建表语句保存到 Git 项目中作为备份。 以方便在新的开发环境快速搭建数据库环境。 一张一张表复制黏贴太慢了,有没有一次导出全部建表语句的方法? 导出方法 MySQL Workbench 客户端,同时选中多个数据表,右键 - Copy to clipboard - Create Statement. 即可复制到剪切板,再黏贴到一个本地文件中即可。 ...
| 生活 | 跑步 清单 足球 鲁班 探索 孤独的美食家 驾驶 电视剧 收纳 奶爸 健康 game 电影 周末 joke |
|---|---|
| Geek | 健身 Laravel Git Vim MySQL Linux UI Windows SVN 纪录片 管理 Shell 游记 工具 手机 BackboneJS 自建博客 Mac DNS Tornado CDN Django Python AngularJS 理财 前端 Nginx 爬虫 Redis Javascript Browser 浏览器 推广 OAuth CSS PHP Social Networks 安全 运维 创业 杂记 VueJS Android Image IDE Java ReactJS 数据分析 SQLite RESTful 读书笔记 家电 ecshop Vagrant wordpress docker SEO GTD magento mongodb nodejs weex 冷知识 ruby iOS 微信小程序 AI CMS 快应用 backpack 广告联盟 OA 短信 UWP Win CSharp Tampermonkey graphviz 钉钉 WPS 数据字典 微信公众号 Fuchsia Adobe XD SQL Server thinkphp 代码规范 商业模式 Flutter 头痛的问题 serverless 视频制作 国际化 golang 服务器 Kotlin 网站建设 5G 笔记本 图片 spark spring 物联网 InfluxDB 图像识别 postgre rust 提示词 |
| 成长的烦恼 | 闲言碎语 待产 不睡觉 写作 程序员 孙心然语录 原则 大鸿语录 |
| 地球 | 植物 时间 中文 赚钱 国家地理 烟台 一生伏首拜阳明 emoji 弟子规 英文 国际贸易 |