2014-06-30 25 views
2

我有此表沒有PK:的MySQL得到的值更改時更新

列:

id - number of id in table that was changed 
action - what action was used (insert,update,delete) on row 
name - new variable 
who - who changed it 
ts - when was it changed 

表:

id action name  who  ts 
2  insert text  admin 2014-06-29 20:10:57 
2  update new_text user  2014-06-29 20:10:57 
2  delete new_text admin 2014-06-29 20:10:57 

我試圖從該行得到什麼被改爲什麼

例如:

id  action  name_from  name_to  who  ts 
2  insert      text   admin 2014-06-29 20:10:57 
2  update  text   new_text  admin 2014-06-29 20:10:57 
2  delete         admin 2014-06-29 20:10:57 

我想插入和刪除很容易,因爲這是沒有以前的變量,但棘手的是更新。

我的目標:是從去年(插入選擇變量名,更新與新的更新比較

此:

id  action  name_from  name_to  who  ts 
2  update  text   new_text  admin 2014-06-29 20:10:57 

問題:要獲得前值我使用時間戳在這種情況下,時間戳相同

回答

0

引入唯一ID(PK)字段或milliseconds在你的時間戳字段。

這是已經討論過的問題,您只需要搜索它。有理由爲什麼人們會考慮database table normalization,我認爲在向表格添加更多數據方面沒有任何壞處,如果這是應用程序設計所要求的。

+0

使用主鍵 –