Chuenhung的个人网站

chuenhung.github.io

数据库表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
-- 业务日志表
CREATE TABLE "t_log" (
"id" SERIAL NOT NULL,
"operate_class" VARCHAR(64) NULL DEFAULT NULL,
"operate_method" VARCHAR(64) NULL DEFAULT NULL,
"request_params" JSON NULL DEFAULT NULL,
"response_result" JSON NULL DEFAULT NULL,
"description" VARCHAR(500) NOT NULL,
"result" VARCHAR(50) NOT NULL,
"operator_id" VARCHAR(64) NOT NULL,
"operator_name" VARCHAR(64) NOT NULL,
"client_ip" VARCHAR(100) NOT NULL,
"operate_date" TIMESTAMP NOT NULL DEFAULT pg_systimestamp() ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY ("id")
)
COMMENT='业务日志表'
;
COMMENT ON COLUMN "t_log"."id" IS '业务日志ID';
COMMENT ON COLUMN "t_log"."operate_class" IS '操作的接口类名';
COMMENT ON COLUMN "t_log"."operate_method" IS '操作的方法名';
COMMENT ON COLUMN "t_log"."request_params" IS '请求参数';
COMMENT ON COLUMN "t_log"."response_result" IS '返回参数';
COMMENT ON COLUMN "t_log"."description" IS '操作说明';
COMMENT ON COLUMN "t_log"."result" IS '操作结果';
COMMENT ON COLUMN "t_log"."operator_id" IS '操作人id';
COMMENT ON COLUMN "t_log"."operator_name" IS '操作人名称';
COMMENT ON COLUMN "t_log"."client_ip" IS '客户端IP';
COMMENT ON COLUMN "t_log"."operate_date" IS '操作时间';
阅读全文 »

Linux/Mac (使用split命令,会默认保留原文件编码)

语法、使用示例如下:

1
2
3
4
5
// 语法
split -l 每多少行拆分 -d -a 序列号位数 --additional-suffix="拆分后的文件后缀" 待拆分的文件名称 "拆分后的文件前缀"

// 使用示例:chunk_0000.sql、chunk_0001.sql...
split -l 100000 -d -a 4 --additional-suffix=".sql" insert_tmp_user.txt "chunk_"

Windows (使用PowerShell,需指定文件编码)

1
2
3
4
5
6
7
8
9
10
11
12
13
// 1、语法
// 这个变量是全局的,每次执行会重置
$i = 0
Get-Content 待拆分的文件名称 -ReadCount 每多少行拆分 -Encoding UTF8 | ForEach-Object {
$_ | Out-File -FilePath "拆分后的文件全名称" -Encoding 字符编码
$i++
}
// 2、使用示例
$i = 0
Get-Content insert_tmp_user.txt -ReadCount 100000 -Encoding UTF8 | ForEach-Object {
$_ | Out-File -FilePath "tmpuser\chunk_$i.sql" -Encoding UTF8
$i++
}

Mysql给查询记录增加序列号

使用变量

示例:

1
2
3
SET @row_number := 0;
SELECT (@row_number:=@row_number + 1) AS serial_number, t.*
FROM (SELECT * FROM your_table) AS t;

使用使用ROW_NUMBER() OVER()窗口函数

需要MySQL版本8.0以上
示例:

1
2
SELECT ROW_NUMBER() OVER (ORDER BY some_column) AS serial_number, *
FROM your_table;

在这个查询中,ROW_NUMBER()函数根据some_column列的排序来为每行生成一个序列号。

阅读全文 »
0%