2011-01-20 199 views
-2

场景:数据库更新

我有数据库1(PostgreSQL系统)。对于这个i)当记录被删除时,状态栏。该记录被更改为非活动状态。 ii)更新记录时,当前记录呈现INACTIVE并插入新记录。 iii)插入照常进行。数据库中所有表的每条记录都有一个时间戳列。

我有被同步到数据库1另一个DATABASE2(SQLite的),并遵循数据库1被定期更换数据库1

的相同的属性,我会得到CSV文件中的所有表。 CSV将包含所有数据,包括新插入和更新。

要求:

我需要在数据库1与新的CSV一致的数据。 i)对于不在CSV中的记录,但在Database1(DELETED RECORDS)中有记录 - 这些记录必须将状态设置为非活动状态。 ii)对于那些在CSV中但不存在于Database1(INSERTED RECORDS)中的记录 - 我需要插入这些记录。 iii)对于在CSV中更新的记录,我需要将状态设置为非活动状态并插入新记录。

请帮助我实现这些逻辑!

感谢

Jayakrishnan

回答

1

我假设你正在寻找建立软件来实现你想要什么,而不是寻找一个现成的,现成的解决方案。

您可以在哪些环境中开发? C? PHP? Java的? C#?

许多环境中的选项都可以从CSV/SQLite/PostgreSQL读取/写入。

0

您可以使用ON DELETE触发器来覆盖现有的删除行为。

然而,这让我觉得很危险。有人会依赖这个,然后当触发器不在那里时,你将会发生实际的删除操作......最好把它封装在一个视图或某个东西后面并在其上放置一个触发器。或者通过一个存储过程或其他东西。