2011-01-20 250 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觸發器來覆蓋現有的刪除行爲。

然而,這讓我覺得很危險。有人會依賴這個,然後當觸發器不在那裏時,你將會發生實際的刪除操作......最好把它封裝在一個視圖或某個東西后面並在其上放置一個觸發器。或者通過一個存儲過程或其他東西。