繁体   English   中英

mariadb 中是否有任何内容可以从 .txt 文件或其他格式导入数据,我可以在其中定义从 position 到 position 的归档值长度?

[英]Is there anything in mariadb to import data from .txt file or different format where i can define a filed value length from position to position?

尝试在 maridadb 中导入数据,我的数据看起来像

“20220910SATURDAY” “20220911MON” “20220912TUE” “20220913THUR”

表示数据。 我的数据库结构化列是:column1:Year,column2:Month,Column3:Day,Column4:DayInLetters。 需要定义一个配置,例如每行前 4 个字母,即从 0 到 3 是年份字段,4-5 是 Mon,6-7 是 Day,8-last 是 DayInLetters。 有什么解决办法吗?

这是LOAD DATA INFILE的工作。 因为输入文件中的字段不是由逗号、制表符或类似内容分隔的,所以您需要使用一种不常见的功能,称为输入预处理

将此 SQL 语句提供给命令行 mysql 客户端将起作用。

LOAD DATA INFILE '/tmp/data.txt' INTO TABLE tbl (@line)
      SET year =           SUBSTRING(@line, 1, 4),
          month =          SUBSTRING(@line, 5, 2),
          day =            SUBSTRING(@line, 7, 2),
          day_in_letters = SUBSTRING(@line, 9);

这会将命名文件的每一行依次加载到临时变量@line中,然后为每一列提取substring

但是,专业提示,将日历日期放入DATE 列(或 TIMESTAMP 或 DATETIME 列)比设计自己的日历日期表示方式要好得多。 MariaDB 和 MySQL 具有全面且经过完全调试的日期算术功能

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM