From f0c1ae847990829f2e9137cd61b2396f8e7fa03e Mon Sep 17 00:00:00 2001 From: Fortern Date: Fri, 31 Oct 2025 04:46:50 +0800 Subject: [PATCH] update --- PostgreSQL/qqnt/{qqnt.sql => qqnt_ddl.sql} | 90 +++++++++++++++++++++- PostgreSQL/qqnt/qqnt_transfer.sql | 47 +++++++++++ 2 files changed, 134 insertions(+), 3 deletions(-) rename PostgreSQL/qqnt/{qqnt.sql => qqnt_ddl.sql} (85%) create mode 100644 PostgreSQL/qqnt/qqnt_transfer.sql diff --git a/PostgreSQL/qqnt/qqnt.sql b/PostgreSQL/qqnt/qqnt_ddl.sql similarity index 85% rename from PostgreSQL/qqnt/qqnt.sql rename to PostgreSQL/qqnt/qqnt_ddl.sql index b7cae3a..7e978c5 100644 --- a/PostgreSQL/qqnt/qqnt.sql +++ b/PostgreSQL/qqnt/qqnt_ddl.sql @@ -2,8 +2,51 @@ create schema qqnt; comment on schema qqnt is 'Fortern的QQNT聊天记录'; +-- QQNT 原始的 group_msg_table 表结构 +-- 为了快速导入数据而创建的临时表,无需索引 +create table qqnt.group_msg_tmp +( + "40001" bigint primary key, + "40002" bigint, + "40003" integer, + "40010" integer, + "40011" integer, + "40012" integer, + "40013" integer, + "40020" text, + "40026" integer, + "40021" text, + "40027" bigint, + "40040" integer, + "40041" integer, + "40050" integer, + "40052" integer, + "40090" text, + "40093" text, + "40800" BYTEA, + "40900" BYTEA, + "40105" integer, + "40005" integer, + "40058" integer, + "40006" bigint, + "40100" integer, + "40600" BYTEA, + "40060" integer, + "40850" bigint, + "40851" integer, + "40601" BYTEA, + "40801" BYTEA, + "40605" BYTEA, + "40030" bigint, + "40033" bigint, + "40062" BYTEA, + "40083" integer, + "40084" integer +); + + +-- 处理后可读的 group_msg_table 表 -- https://docs.aaqwq.top/view/db_file_analysis/nt_msg.db.html --- group_msg_table create table qqnt.group_msg_table ( -- 40001 消息ID,具有唯一性 @@ -86,7 +129,7 @@ create index qq_no_index on qqnt.group_msg_table (qq_no); create index group_no_index on qqnt.group_msg_table (peer_uin, qq_no); -- 时间索引 create index group_msg_time_index on qqnt.group_msg_table (msg_time); --- 群号与日期的索引 +-- 群号与时间的索引 create index group_no_msg_time_index on qqnt.group_msg_table (peer_uin, msg_time); -- 消息类型联合索引 create index group_msg_type_index on qqnt.group_msg_table (peer_uin, msg_type, sub_msg_type); @@ -174,7 +217,48 @@ create index group_msg_type_index on qqnt.group_msg_table (peer_uin, msg_type, s -- 表情包:17,8 -- 原创表情:17,8 --- c2c_msg_table +-- QQNT 原始的 c2c_msg_table 表结构 +-- 为了快速导入数据而创建的临时表,无需索引 +create table qqnt.c2c_msg_tmp ( + "40001" bigint primary key, + "40002" bigint, + "40003" integer, + "40010" integer, + "40011" integer, + "40012" integer, + "40013" integer, + "40020" text, + "40026" integer, + "40021" text, + "40027" integer, + "40040" integer, + "40041" integer, + "40050" integer, + "40052" integer, + "40090" text, + "40093" text, + "40800" bytea, + "40900" bytea, + "40105" integer, + "40005" integer, + "40058" integer, + "40006" bigint, + "40100" integer, + "40600" bytea, + "40060" integer, + "40850" integer, + "40851" integer, + "40601" bytea, + "40801" bytea, + "40605" bytea, + "40030" bigint, + "40033" bigint, + "40062" bytea, + "40083" integer, + "40084" integer +); + +-- 私聊消息 c2c_msg_table create table qqnt.c2c_msg_table ( -- 40001 消息ID,具有唯一性 diff --git a/PostgreSQL/qqnt/qqnt_transfer.sql b/PostgreSQL/qqnt/qqnt_transfer.sql new file mode 100644 index 0000000..e8131d9 --- /dev/null +++ b/PostgreSQL/qqnt/qqnt_transfer.sql @@ -0,0 +1,47 @@ +INSERT INTO qqnt.group_msg_table (id, msg_random, msg_seq, chat_type, msg_type, sub_msg_type, send_type, sender_uid, + q40026, peer_uid, peer_uin, q40040, send_status, msg_time, q40052, send_member_name, + send_nick_name, msg_content, msg_quote, q40105, q40005, midnight_timestamp, elem_id, + at_status, msg_status, disband_flag, reply_to, q40851, q40601, q40801, q40605, + group_no, qq_no, emoji, emoji_num, emoji_num_2) +SELECT "40001", + "40002", + "40003", + "40010", + "40011", + "40012", + "40013", + "40020", + "40026", + "40021", + "40027", + "40040", + "40041", + to_timestamp("40050"), + "40052", + "40090", + "40093", + "40800", + "40900", + "40105", + "40005", + to_timestamp("40058"), + "40006", + "40100", + "40600", + "40060", + "40850", + "40851", + "40601", + "40801", + "40605", + "40030", + "40033", + "40062", + "40083", + "40084" +FROM qqnt.group_msg_tmp; + +DELETE +FROM qqnt.group_msg_tmp +where true; +