我正在尝试确定在同一模式中将大数据从一个表移动到另一个表时是否可能发生数据损坏/丢失。
我是编程新手,数据库不是我的强项。无论如何,我已经尝试了一些 sql 查询来传输数据并检查差异,但我想听听数据库开发专家的确认。
我用了
INSERT INTO table_name2
SELECT *
FROM table_name1;
查询将数据从一个表传输到另一个表。
我正在尝试确定在同一模式中将大数据从一个表移动到另一个表时是否可能发生数据损坏/丢失。
我是编程新手,数据库不是我的强项。无论如何,我已经尝试了一些 sql 查询来传输数据并检查差异,但我想听听数据库开发专家的确认。
我用了
INSERT INTO table_name2
SELECT *
FROM table_name1;
查询将数据从一个表传输到另一个表。
虽然有可能发生这种情况,但它是非常非常不可能的。
插入应该存储与它的选择提要完全相同的数据。
该数据最初被写入重做日志 - 那时的任何损坏都应该杀死数据库。
一段时间后,数据被写入 DataFiles。
那时的任何腐败都可能不会被注意到!Oracle 仅在从磁盘读取数据块时检查数据块的完整性,而不是在写入时检查数据块的完整性。但是,您应该在系统中内置足够的冗余 - 定期备份,可能还有备用数据库 - 来处理这个问题,但同样不太可能。
如果您在执行此操作时看到数据损坏,则可能是涉及到您未提及的数据类型转换,或者您的数据库存在严重问题。在数据库内部复制数据应该就像呼吸一样——你真的不必考虑它。