最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

關(guān)于timestamp的二三事_MySQL

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 20:09:50
文檔

關(guān)于timestamp的二三事_MySQL

關(guān)于timestamp的二三事_MySQL:之所以要寫timestamp的隨筆,是因為之前對它的理解存在誤區(qū),so. I have to remind myself by writing this informal essay. 微軟文檔鏈接:https://msdn.microsoft.com/zh-cn/library/ms182776.aspx 釋義(ro
推薦度:
導(dǎo)讀關(guān)于timestamp的二三事_MySQL:之所以要寫timestamp的隨筆,是因為之前對它的理解存在誤區(qū),so. I have to remind myself by writing this informal essay. 微軟文檔鏈接:https://msdn.microsoft.com/zh-cn/library/ms182776.aspx 釋義(ro

之所以要寫timestamp的隨筆,是因為之前對它的理解存在誤區(qū),so. I have to remind myself by writing this informal essay.

微軟文檔鏈接:https://msdn.microsoft.com/zh-cn/library/ms182776.aspx

釋義(rowversion和timestamp是一樣的好比C#里的(String和string是一個概念 同義詞,寫法不一樣而已 ),不過微軟好像建議用 rowversion ,數(shù)據(jù)庫上操作還是有差別的暫時未深入研究,可查詢下面的超鏈接看看):

公開數(shù)據(jù)庫中自動生成的唯一二進制數(shù)字的數(shù)據(jù)類型。 rowversion 通常用作給表行加版本戳的機制。 存儲大小為 8 個字節(jié)。 rowversion 數(shù)據(jù)類型只是遞增的數(shù)字,不保留日期或時間。 若要記錄日期或時間,請使用 datetime2 數(shù)據(jù)類型。

注釋

每個數(shù)據(jù)庫都有一個計數(shù)器,當(dāng)對數(shù)據(jù)庫中包含 rowversion 列的表執(zhí)行插入或更新操作時,該計數(shù)器值就會增加。 此計數(shù)器是數(shù)據(jù)庫行版本。 這可以跟蹤數(shù)據(jù)庫內(nèi)的相對時間,而不是時鐘相關(guān)聯(lián)的實際時間。 一個表只能有一個 rowversion 列。 每次修改或插入包含 rowversion 列的行時,就會在 rowversion 列中插入經(jīng)過增量的數(shù)據(jù)庫行版本值。 這一屬性使 rowversion 列不適合作為鍵使用,尤其是不能作為主鍵使用。 對行的任何更新都會更改行版本值,從而更改鍵值。 如果該列屬于主鍵,那么舊的鍵值將無效,進而引用該舊值的外鍵也將不再有效。 如果該表在動態(tài)游標(biāo)中引用,則所有更新均會更改游標(biāo)中行的位置。 如果該列屬于索引鍵,則對數(shù)據(jù)行的所有更新還將導(dǎo)致索引更新。

timestamp 的數(shù)據(jù)類型為 rowversion 數(shù)據(jù)類型的同義詞,并具有數(shù)據(jù)類型同義詞的行為。 在 DDL 語句,請盡量使用 rowversion 而不是 timestamp。 有關(guān)詳細信息,請參閱數(shù)據(jù)類型同義詞 (Transact-SQL)。

Transact-SQL timestamp 數(shù)據(jù)類型不同于在 ISO 標(biāo)準(zhǔn)中定義的 timestamp 數(shù)據(jù)類型。

從上面釋義才醒悟,時間戳 和日期、時間半毛錢關(guān)系都沒有。 只是個二進制值。哎.... timestamp 大家基本都知道用于并發(fā)控制的,但怎么實現(xiàn) 怎么操作呢。?

剩下的就不多扯了 : 讓我們看看微軟是如何介紹 timestamp的并發(fā)控制的: 補充下 查詢當(dāng)前數(shù)據(jù)庫時間戳 : SELECT @@DBTS

CREATE TABLE MyTest2 (myKey int PRIMARY KEY
 ,myValue int, TS timestamp);
GO 
INSERT INTO MyTest2 (myKey, myValue) VALUES (1, 0);
GO 
INSERT INTO MyTest2 (myKey, myValue) VALUES (2, 0);
GO
DECLARE @t TABLE (myKey int);
UPDATE MyTest2
SET myValue = 2
 OUTPUT inserted.myKey INTO @t(myKey) 
WHERE myKey = 1 
 AND TS = myValue;
IF (SELECT COUNT(*) FROM @t) = 0
 BEGIN
 RAISERROR ('error changing row with myKey = %d'
 ,16 -- Severity.
 ,1 -- State 
 ,1) -- myKey that was changed 
 END;

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

關(guān)于timestamp的二三事_MySQL

關(guān)于timestamp的二三事_MySQL:之所以要寫timestamp的隨筆,是因為之前對它的理解存在誤區(qū),so. I have to remind myself by writing this informal essay. 微軟文檔鏈接:https://msdn.microsoft.com/zh-cn/library/ms182776.aspx 釋義(ro
推薦度:
標(biāo)簽: tim mysql 有關(guān)
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top