簡體   English   中英

確保MySQL表的字符集和排序規則

[英]Ensure MySQL table charset & collation

情況:存在一個由應用程序A管理的表。應用程序A全天在表中插入和更新數據。 每周一次DROP對該表進行重新創建,然后插入所有數據。

問題:應用程序A將表創建為utf8 依賴於此表的應用程序B要求它為ascii_bin 我既沒有設計應用程序,也沒有修改其要求的權限。

需要什么:一種確保表在ascii_bin 我考慮編寫腳本並通過CRON運行它,它將檢查當前字符集並在需要時進行設置。 有沒有更好的方法來實現這一目標?

由於ALTER是導致隱式COMMIT的語句之一,因此我認為不可能在INSERTUPDATE之后將其作為觸發器的一部分來執行。

您可以將ascii_bin設置為數據庫架構的默認字符集。 然后,所有創建的表在創建時都將具有此字符集,除非您明確指定另一個字符集。

有關如何設置默認字符集的信息,請參見MySQL文檔: http : //dev.mysql.com/doc/refman/5.0/en/charset-database.html

MySQL代理可能是這里的解決方案。

您可以在通過代理時重寫create語句。

另外,也許您可​​以從應用程序A中刪除特權,以便它不能刪除表。

基本上不做任何更改的ALTER語句。 因此,如果多次運行到ascii_bin的轉換,則在服務器上不會花費太多精力。 因此,將其放在cron中,或者由Applicatio B調用的現有存儲過程,或者其他更聰明的方法,都還不錯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM