我有一个包含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的,而不是空值...... –
谢谢你,伟大的作品。 –