[英]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.