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語句有下面的效果:
· 不允許你執行UPDATE或DELETE語句,除非在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,000和1,000,000之外的值,可以使用--select_limit和--max_join_size選項覆蓋默認值:
shell> mysql --safe-updates --select_limit=500 --max_join_size=10000