[2179/5237]创建表已完成,导入表 sys_audit 的数据中... 一直卡着了
时间: 2024-04-06 11:31:34 浏览: 83
这个问题可能是由于导入数据的过程中发生了某些错误导致的。你可以先尝试停止导入数据的操作,然后检查导入数据的语句是否正确以及数据文件是否存在或者是否有权限读取。如果语句和数据文件都没有问题,你可以尝试重新启动导入数据的操作,或者使用更高效的导入数据方式,比如使用LOAD DATA INFILE命令。如果问题依然存在,可能需要进一步排查导入数据的过程中是否有其他问题导致的。
相关问题
update_df = update_df.select("l.*", "lm.audit_batch_id", "lm.audit_job_id", "lm.audit_src_sys_name", "lm.audit_created_usr", "lm.audit_updated_usr", "lm.audit_created_tmstmp", "lm.audit_updated_tmstmp")
这段代码的意思是什么?
这段代码是将update_df数据框中的所有列(l.*)和另一个数据框(lm)中的审计列拼接在一起。具体来说,将lm数据框中的audit_batch_id、audit_job_id、audit_src_sys_name、audit_created_usr、audit_updated_usr、audit_created_tmstmp、audit_updated_tmstmp这些审计列与update_df的所有列拼接在一起。最终返回的是一个新的数据框,其中包含了原数据框的所有列和审计列。
mysql函数查询sys_audit中的10w条数据,保存到sys_audit_archive,然后删除sys_audit表中这些数据,重复执行
在MySQL中,如果你想要将特定数量的数据从一个表复制到另一个表,并删除原表中的这些数据,你可以使用一系列的SQL语句来实现这个过程。以下是一个基本的步骤说明,假设我们正在操作的数据表名为`sys_audit`和`sys_audit_archive`,并且我们想要复制10万条记录:
1. 开启事务,以确保数据的一致性,避免在操作过程中出现意外情况导致数据不一致。
2. 使用`INSERT INTO ... SELECT`语句将`sys_audit`表中的数据复制到`sys_audit_archive`表中。这里可以使用`LIMIT`子句来限制复制的数据量,例如10万条记录。
3. 使用`DELETE FROM`语句删除`sys_audit`表中已经被复制的数据。
4. 提交事务,完成整个操作。
具体的SQL语句可能如下所示:
```sql
START TRANSACTION; -- 开启事务
-- 将sys_audit表中的前10万条数据插入到sys_audit_archive表中
INSERT INTO sys_audit_archive
SELECT * FROM sys_audit
LIMIT 100000;
-- 删除sys_audit表中的已经复制的10万条数据
DELETE FROM sys_audit
WHERE id IN (SELECT id FROM sys_audit LIMIT 100000);
COMMIT; -- 提交事务
```
需要注意的是,这里假设`sys_audit`表有一个可以用来标识每条记录的唯一字段(例如`id`字段),并且`sys_audit`表中的数据是按照`id`递增的方式存储的。如果你的表使用不同的字段或者有不同的数据结构,你需要相应地调整SQL语句。
此外,对于非常大的数据表,在删除大量记录时,数据库性能可能会受到影响。在实际操作中,可能需要考虑数据库的性能和事务大小,可能需要分批处理数据或者在低峰时段执行。
阅读全文