在MySQL中,临时表是在当前会话期间创建的,并在会话结束时自动删除
首先,使用SELECT语句将临时表的数据导出到CSV文件。这里假设你的临时表名为temp_table,并且你想将数据导出到名为output.csv的文件中。
SELECT * INTO OUTFILE '/path/to/output.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM temp_table;
请确保将/path/to/output.csv替换为实际的文件路径。此外,根据需要调整字段和行分隔符。
接下来,将CSV文件导入到目标数据库的表中。假设你已经在目标数据库中创建了一个与临时表结构相同的表,名为target_table。
LOAD DATA INFILE '/path/to/output.csv'
INTO TABLE target_table
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';
请确保将/path/to/output.csv替换为实际的文件路径。此外,根据需要调整字段和行分隔符。
注意:在执行这些操作时,请确保具有足够的权限。对于SELECT ... INTO OUTFILE和LOAD DATA INFILE,你需要FILE权限。另外,请确保MySQL服务器上的secure_file_priv系统变量允许访问指定的文件路径。如果secure_file_priv设置为空,那么你可以在任何位置读写文件。如果设置为特定目录,那么你只能在该目录中读写文件。你可以通过运行以下命令查看secure_file_priv的值:
SHOW VARIABLES LIKE 'secure_file_priv';