同步 Oracle 数据库中 2 个表中的数据库列

Synchronize database columns in 2 tables in Oracle database

我们在 2 个表中有列,其值需要相同。

Table 1
ID | ColumnA

Table 2
ID | ColumnB

我们有这种冗余来支持现有的应用程序。一旦发生迁移,Table 2 中的 ColumnB 将不再使用。但是,在此之前,两列将需要同步。我建议使用触发器来完成此操作,并在迁移完成后删除触发器。

有人告诉我这通常不会完成,应该在应用程序代码中完成。为什么触发器不是一个好的选择?

触发器非常安全;一切都保存在数据库中,由它负责。没有“后门”,即您在该应用程序中有两个“表单”并修改了一个以执行同步,但是忘记在另一个中执行相同的操作,现在您不同步了.

触发器选项的缺点是它会为受影响的每一行触发。如果您在单行甚至几百行上执行此操作,一切都会好起来的。但是,如果涉及数百万行,那么您可以预期事情会变慢,因为......好吧,为它们中的每一个触发一百万次。

但是,按照您描述的方式(“应该在应用程序代码中完成”),我想这应该不是问题,看起来更像是逐行处理。不过,我可能是错的。