mysql - 是否可以在 LOAD DATA INFILE 期间执行函数而不创建存储过程?

标签 mysql mysql-workbench etl

我有两列 q1 和 q2,我想将它们求和并放入目标列 q。

我现在的做法是,我将数据放入中间表中,然后在加载期间求和,但我想知道是否可以在提取期间执行此操作?

这是我的脚本:

LOAD DATA INFILE 'C:\temp\foo.csv'
    INTO TABLE new_foo
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES
    (q1,q1)

INSERT INTO foo (q) SELECT q1+q2 AS q
FROM foo_temp;

最佳答案

尝试:

LOAD DATA INFILE 'C:\temp\foo.csv'
    INTO TABLE `foo`
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES
    (@`q1`, @`q2`)
    SET `q` = @`q1` + @`q2`;

关于mysql - 是否可以在 LOAD DATA INFILE 期间执行函数而不创建存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35944809/

相关文章:

mysql - mysql中的datediff仅在具有特定值时才选择新字段

mysql - 使用第一个 sql 语句结果到另一个 sql 语句

testing - 测试应用程序仪表板数据的最佳实践

mysql - 具有不同模式和表结构的新升级应用程序中mysql的数据迁移工具

mysql - 将数据从一个数据库移动到另一个具有不同数据结构的数据库

php - 如何上传多个文件

mysql - 数据库设计,不同列中的许多不同项目(项目 a 可以在列 a 或 b 中)

mysql - 如何通过多个表插入数据

mysql - 从 ERD 生成 SQL - 如何将关系映射到 SQL?

mysql - 我如何使用 GROUP_CONCAT() 获得我想要的结果