給 mysql 系統表加上 trigger

2022-02-11 19:08:27 字數 331 閱讀 1628

預設情況下,mysql 是不能給系統表,例如 mysql.user 加上觸發器的。會提示

error 1465 (hy000): triggers can not be created on system tables
但是還是可以有辦法繞過這個限制。

在其他 db 裡另外建乙個結構名字一樣的表,例如

create table test.user like mysql.user
然後在那個表上建好觸發器。這樣會在資料庫目錄中生成 「表名.trg」 檔案。把這個檔案拷貝到 mysql 庫的目錄中,確認訪問許可權沒問題後,重啟一下 mysql ,觸發器就可以生效了。

mysql給函式加上鎖 MySQL (鎖篇)

1 什麼是鎖?mysql 中提供了幾類鎖?鎖是實現資料庫併發控制的重要手段,可以保證資料庫在多人同時操作時能夠正常執行。mysql 提供了全域性鎖 行級鎖 表級鎖。其中 innodb 支援表級鎖和行級鎖,myisam 只支援表級鎖。2 什麼是死鎖?死鎖是指兩個或兩個以上的程序在執行過程中,因爭奪資源...

MySQL 為什麼要給表加上主鍵

1.乙個沒加主鍵的表,它的資料無序的放置在磁碟儲存器上,一行一行的排列的很整齊.2.乙個加了主鍵的表,並不能被稱之為 表 如果給表上了主鍵,那麼表在磁碟上的儲存結構就由整齊排列的結構轉變成了樹狀結構,並且是 平衡樹 結構,換句話說,就是整個表就變成了乙個索引。沒錯,再說一遍,整個表變成了乙個索引,也...

手動給mysql表上鎖

1.mysql全域性上鎖 flush tables with read lock 這個命令是全域性讀鎖定,執行了此命令之後所有庫所有表都被鎖定唯讀。在搭建主從的時候,此命令可以很好地保證主庫狀態 執行此語句後,庫執行create語句也會等待 解鎖語句是unlock tables。flush tabl...