2015-04-03 74 views
2

當我嘗試創建一個已經存在的數據庫,創建數據庫,1行受影響

CREATE DATABASE IF NOT EXISTS test; 
Query OK, 1 row affected (0.00 sec) 
CREATE DATABASE IF NOT EXISTS test; 
Query OK, 1 row affected, 1 warning (0.00 sec) 

爲什麼它顯示1 row affected消息第二次,即使它沒有創造一個新的數據庫同名?

回答

1

雖然CREATE DATABASE IF NOT EXISTS test;命令將不直接修改在test數據庫的出射實例的行,它會影響內部存儲在mysql數據庫中的實際細節,或者可能在的派生元視圖之一,像information_schemaperformance_schema

報告的Query OK, 1 row affected (0.00 sec)指的是這些內部數據結構中的一行。當您重新發布CREATE DATABASE命令並且由於IF NOT EXISTS子句而失敗時,它仍然可能在內部存儲元數據,可能是一個累計字段,用於計算警告或類似事件,甚至可能只是一個「上次執行時間」的時間戳數據庫的行。在任何情況下,此記錄中存儲的數據都會更改,並反映爲「受影響」行。