我有一個包含NULL值的表。此表僅用於存儲數字值,除了包含每個記錄的時間戳的第二列以外。這個表已經使用了一段時間,所以在不同的列中累積了很多NULL值。從現在起被添加任何NULL值MySQL ALTER/UPDATE表
- :這裏的表的描述:
+-----------------------------------------+-----------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------------------------------+-----------+------+-----+-------------------+----------------+ | results_id | int(11) | NO | PRI | NULL | auto_increment | | time_stamp | timestamp | NO | | CURRENT_TIMESTAMP | | | test_col | int(11) | YES | | NULL | | | test_col-total | int(11) | YES | | NULL | | | test_col_B | int(11) | YES | | NULL | | | test_col_B-total | int(11) | YES | | NULL | | +-----------------------------------------+-----------+------+-----+-------------------+----------------+
12行中集合(0.01秒)
我現在要更新/改變表,以便對錶進行處理並將其處理爲'0'值(真的很想知道這是否確實可行;如果是這樣,那麼我不需要在其他地方的很多Python腳本中更改INSERT查詢的負載!)
- 所有存儲的NULL值都是up過時/更改爲「0」。
我完全堅持這一點,因爲一方面我希望我的SQL查詢更新新的規則到表中,而另一個更改當前的NULL值和作爲新手這是一個稍微更中間的我的目前的瞭解。
到目前爲止,我有:
ALTER TABLE `results` MODIFY `<col_name>` INT(11) NOT NULL;
我會做到這一點對每個當前允許NULL值的列。但是,我不知道如何將存儲的NULL值更改爲'0'。
任何輸入讚賞。
好......所以首先你要做一個'update'查詢,把所有的空值爲零將被添加。那麼你想修改每一列並且使它相同,除了添加一個'default 0'(和一個'not null') –
'update table_name set test_col = ifnull(test_col,0)'並且做那個爲每個列,所以他們有0的,而不是空值...... –
謝謝你,偉大的作品。 –