用AJAX,當(dāng)?shù)谝晃挥脩暨M去編輯的時候,就開始記錄這個用戶的ID。當(dāng)其他用戶進去后臺編輯的時候AJAX實時獲取,就可以提醒用戶已經(jīng)有人在編輯了,同時限制其他用戶編輯
成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,先為饒河等服務(wù)建站,饒河等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為饒河企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
首先,這個問題只有在特殊情況下才算是問題,大多數(shù)情況下可以不作考慮。
然后,這是問題很難描述清楚,解決方案有多種,下面提供一種較方便易用的方式
場景(問題)描述如下:
0,用戶A、B同時打開一個頁面,頁面顯示,客戶表T_CUSTOMER字段(C_NAME、C_AGE)
姓名:張三,年齡:25
1,A 將姓名“張三”改為“張三1”,然后保存
2,B 將年齡“25”改為“30”,然后保存
這樣A的操作就被覆蓋了,姓名又變回“張三”了,大家一般怎么處處這種情況?
這里給出一個較易用的解決方案
給表添加一字段:LAST_UPDATE,即最后更新時間
回放場景
0,用戶A、B同時打開一頁面,面頁顯示:
姓名:張三,年齡:25,LAST_UPDATE:2008-10-17 13:45:00
1,A 將姓名“張三”改為“張三1”,然后保存
重點在這里:更新數(shù)據(jù)時WHERE條件里多一條件:AND LAST_UPDATE = '2008-10-17 13:45:00'
更新成功,此時觸發(fā)器會將當(dāng)前時間“2008-10-17 13:46:00”賦值給LAST_UPDATE
2,B 將將年齡“25”改為“30”,然后保存
B更新數(shù)據(jù)時WHERE條件里也有這個條件:AND LAST_UPDATE = '2008-10-17 13:45:00',但此時LAST_UPDATE的值已經(jīng)在A修改記錄時變成2008-10-17 13:46:00
下面要做的就是給出提示了:喔喲,此信息在你發(fā)呆這段時間已被人改過啦,所以你需要返工。
觸發(fā)器代碼如下:
===================================================
CREATE OR REPLACE TRIGGER T_CUSTOMER
BEFORE UPDATE ON T_CUSTOMER
FOR EACH ROW
/*
記錄最后修改時間
*/
BEGIN
:NEW.LAST_UPDATE := SYSDATE;
END;
===================================================
如果觸發(fā)器不熟悉或者只是不喜歡用觸發(fā)器,完全可以修改記錄時同時給LAST_UPDATE字段賦值,以此替代觸發(fā)器的作用。
利用mysql數(shù)據(jù)庫的增量備份功能,先開啟增量備份在mysql的配置文件中加上一句log-bin=d:/binlog/mylog//指定備份文件存放目錄,重啟mysql會在binlog目錄下看到mylog.index索引文件和mylog.000001存放操作的文件。這樣你的每個不是查詢的操作將會被記錄到日志文件中。要恢復(fù)可以根據(jù)時間和位置進行恢復(fù)。
mysqlbinlog --stop-datetime="時間" d:/binlog/mylog.000001 | mysql -uroot -p或
mysqlbinlog --stop-postion="位置" d:/binlog/mylog.000001 | mysql -uroot -p均可實現(xiàn)你要的功能!歡迎采用~~