在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';