Mysql中更新同一張表的兩個字段,發生併發

2022-07-10 04:57:11 字數 384 閱讀 8978

innodb_lock_wait_timeout指的是事務等待獲取資源等待的最長時間,超過這個時間還未分配到資源則會返回應用失敗;

當鎖等待超過設定時間的時候,就會報如下的錯誤;error 1205 (hy000): lock wait timeout exceeded; try restarting transaction。

其引數的時間單位是秒,最小可設定為1s(一般不會設定得這麼小),最大可設定1073741824秒,預設安裝時這個值是50s(預設引數設定)。

給出的解決方案:

1)加長事務等待獲取資源等待的時長,set innodb_lock_wait_timeout=1000;

2)長事物等待時長可能治標不治本,最穩妥的方案是修改表設計,併發字段不要設計在同一張表上

更新同一張表的整列字段

先需要先把需要更新的整列結果查詢出來。這裡記錄下mysql時間的函式 date format 欄位名,y m d h i s 第二個引數是要轉換的格式,因為我本來的格式中有毫秒。以下是舉例 轉換的sql select id as dd,date format created,y m d h i s ...

MySQL中update一張表到另一張表

以下的文章主要介紹的是mysql 資料庫中如何將乙個實際應用表的相關資料插入到另外乙個表的實際操作方法,此方案看起來很簡單但是並非如此,雖然這個實現起來非常簡單,但是還是會困擾許多新手,因此專門發一篇文章備查。開發中,我們經常需要將乙個表的資料插入到另外乙個表,有時還需要指定匯入字段,雖然這個實現起...

mysql多次join同一張表的處理

場景 商品表中有不同的商品分類id,一級商品分類id 二級商品分類id,商品分類id 商品分類表中有分類id和分類名稱 兩張表要多次關聯查詢獲取不同等級的分類名稱 如果直接join是不行的,因為分類名稱會重名,但是只要給商品分類表起個別名就可以解決這個問題。select gc.goods name,...