計算機數據庫

“陷阱”DML-隊更新的MySQL

每一個程序員,誰曾與數據庫的工作,面對DML運營商(從英文翻譯- ..“數據操作語言”),如選擇, 插入, 刪除 更新。 MySQL的運輸也使用其所有上述命令的阿森納。

這些陳述是邏輯上談論他的任命 - 選擇記錄,插入新值,更新現有數據,完整,或按照規定的條件,消除在數據庫中的信息。 理論培訓材料進行了詳細的每個命令及其語法的工作原理說明,但無處發現在使用過程中在實踐中可能出現的困難引用。 這種材料將被專門審議其中的一些。

簡單說一下DML語句(插入)

在進一步討論之前,有必要再次回顧關於每個功能的目的更多細節。 我們將有兩個運營商感興趣的詳細信息: 插入 更新,因為它依賴於它們派生在處理大量數據的主要困難

您必須使用命令插入開始然後逐漸移動到更新。 MySQL的系統,就像現代的數據庫,使用插入操作來新記錄添加到現有的表 的數據庫。 此操作的語法很簡單明了。 它包含將向值進行場,目的地的清單 - 表的名字 - 並立即介紹了數據的列表。 每次執行插入數據庫時,會用新值進行更新。

Update語句

然而,在實踐中,經常有,對於一些數據集的一個或多個屬性值進行更新的情況。 作為一個例子,一種情況:公司是改革與主要部門的進一步重命名。 在這種情況下,有必要讓每個部門的變化。 如果只是更改名稱,那麼這個問題可以很快得到解決。 然而,如果改變整個生產,這通常作為主鍵,即是各成分的編碼,進而,需要改變的信息,並為每個員工。

更新 - DML-符可以應用到解決這個問題。 MySQL-服務器,擁有大量的條目,以更新語句的幫助下操作,執行所需的查詢和解決問題。 但有時會發生在更新的不是很清楚,很難解釋的複雜性。 這是什麼原因造成的記錄更新,將進一步討論的難度。

什麼幾乎沒有在理論上已經說...

更新團隊,如上所述,是用來更新表中的現有記錄。 但在實踐中,客戶端訪問數據庫服務器並不總是已知的,是有一定的桌子或沒有數據。 初步檢查數據的可用性數據庫的結果的費時和服務器功能浪費的後續更新。

為了避免這種情況,在一個特殊的數據庫MySQL的結構-插入*更新,在其中插入或更新可以相互獨立地進行。 也就是說,當表特定條件的項目,將被更新。 如果考慮的條件下,數據不會被人發現時,MySQL服務器能夠執行數據上傳請求。

更新數據時有重複

這個插入的一個重要組成部分-請求到MySQL數據庫管理系統- «於重複鍵更新»前綴。 查詢的完整的語法如下:«插入TEST_TABLE(employer_id,名稱)的值( 1,'阿布拉莫夫')上的重複鍵 LAST_MODIFIED = NOW更新(); “。

這樣的請求可被用來記錄的動作,例如,確定該交叉路口通過時刻企業隨後計數時間間隔和檢測延遲。 為了不使表幾條記錄,足以讓每個員工隨時記錄與不斷更新。 這是一個重複的檢查設計允許它。

其實問題...

考慮在入口處的登記人員的動作的上述例子中,作為問題是使用samouvelichivayuschihsya(自動 _ 增量)字段,其通常用於填充主鍵值(主 _ 密鑰)。 如果你在設計中使用MySQL更新命令插入 汽車 _ 增量,現場不斷增加。

同樣,使用重複檢測的情況下,更換施工時發生的一切。 “自動遞增”值,即使在不需要它增加的情況下。 正因為如此,問題出現溢出通的值或範圍,其隨後導致數據庫管理系統的故障。

最有可能的問題

說明了問題必須要考慮的Web開發人員,因為它是最常見的多用戶系統(網站,門戶網站,等等。P.),當系統中進行了大量的程序插入 更新MySQL的。

PHP -呼籲基地經常進行。 因此,要實現最大利潤,定義為AUTO_INCREMENT,迅速發生,並在困難的分析中遇到建立的原因是行不通的。

因此,我們鼓勵開發者意識到要使用命令mysql的更新 重複鍵的設計 選擇-訪問查詢時,數據庫服務器將沒有錯誤的工作,但增加新的記錄到數據庫中充滿了對未來導致嚴重的問題不愉快的情況。 另外,建議為自動遞增字段開始檢查他們的記錄,然後按住他們更新。

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 zhtw.unansea.com. Theme powered by WordPress.