top
Loading...
8.3.4.2.使用--safe-updates選項
8.3.4.2. 使用--safe-updates選項

對于新手,有一個有用的啟動選項--safe-updates(--i-am-a-dummy,具有相同的效果)。當你已經發出一個DELETE FROM tbl_name語句但忘記了WHERE子句時很有用。通常情況,這樣的語句從表中刪除所有行。用--safe-updates,可以通過指定可以識別它們的鍵值只刪除某些行。這樣可以幫助防止事故。

若使用--safe-updates選項,mysql連接MySQL服務器時發出下面的語句:

SET SQL_SAFE_UPDATES=1,SQL_SELECT_LIMIT=1000, SQL_MAX_JOIN_SIZE=1000000;

參見13.5.3節,“SET語法”。

SET語句有下面的效果:

·         不允許你執行UPDATEDELETE語句,除非在WHERE子句中指定一個鍵值約束或提供一個LIMIT子句(或二者皆使用)。例如:

·                UPDATE tbl_name SET not_key_column=val WHERE key_column=val;
·                 
·                UPDATE tbl_name SET not_key_column=val LIMIT 1;

·         所有大的SELECT結果自動限制到1,000行,除非語句包括一個LIMIT子句。

·         放棄可能需要檢查1,000,000多行組合的多表SELECT語句。

要將限制指定為1,0001,000,000之外的值,可以使用--select_limit--max_join_size選項覆蓋默認值:

shell> mysql --safe-updates --select_limit=500 --max_join_size=10000
作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html
北斗有巢氏 有巢氏北斗