mysql - 在存储过程中使用 LOAD DATA INFILE 命令

标签 mysql file-io load

这可能吗?我在一些网站上读到不能在过程中使用 LOAD DATA 命令。

最佳答案

不,我想出于安全原因这是不可能的。但是,您可以使用此技巧为数据库中的表生成“加载数据”查询(为每个表返回一系列查询:在加载数据之前截断表,然后禁用键,然后加载数据,然后启用键):

SELECT CONCAT('TRUNCATE TABLE ',table_name,'; ALTER TABLE ',table_name,' DISABLE KEYS;    LOAD DATA INFILE "',table_name,'.txt" INTO TABLE ',table_name,' FIELDS TERMINATED BY "\\t" LINES TERMINATED BY "\\n"; ALTER TABLE ',table_name,' ENABLE KEYS; ')
FROM information_schema.`TABLES` as infs
WHERE infs.`TABLE_SCHEMA`=DATABASE()
AND infs.`TABLE_TYPE`!='VIEW';

运行此查询后,生成的行是传输数据的查询。我在将完整的数据库内容移动到另一个时使用它。当然,在该查询中,您可以使用更多条件过滤所需的表。希望对您有所帮助。

关于mysql - 在存储过程中使用 LOAD DATA INFILE 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17967883/

相关文章:

php - 你的80端口实际上没有被使用

c++ - 使用 C++ 从 txt 加载 float/double 矩阵

javascript - 浏览器cookie存储

mysql - 使用 SQL Developer 从 MySQL 表中 SELECT INTO Oracle SQL 表

php - 使用 PHP 将 ZOHO CRM 与 MySQL 集成...!

mysql - 无法使用express+mysql登录,注册有效

C输出: Adding a custom filename to a user input directory

c - 为什么程序不写入文件?

python - 在 Python 中跟踪文件加载进度

javascript - 动态加载外部 JS 并将响应写入 div