在mariadb中是否有任何东西可以从.txt文件或不同格式导入数据,在那里我可以定义从一个位置到另一个位置的字段值长度?

w9apscun  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(113)

尝试在maridadb中导入数据,我的数据将显示为
“20220910星期六”“20220911星期一”“20220912星期二”“20220913星期四”
表示数据。我的数据库结构化列是:column 1:年,column 2:月,column 3:日,column 4:DayInLetters。需要定义一个配置,如每行的前4个字母,即从0到3是年字段,4-5是月,6-7是日,8-最后是DayInLetters。是否有解决方案?

7d7tgy0s

7d7tgy0s1#

这是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中,然后为每一列提取一个子字符串。
但是,专业提示,将日历日期放入DATE columns (or TIMESTAMP or DATETIME columns)中比设计您自己的日历日期表示方式要好得多。MariaDB和MySQL已经对date-arithmetic features进行了全面、完整的调试。

相关问题