У меня есть таблица, содержащая значения NULL. Эта таблица предназначена только для хранения числовых значений, за исключением второго столбца, который содержит отметку времени для каждой записи. Эта таблица использовалась в течение некоторого времени и поэтому накопила много значений NULL в разных столбцах. Вот описание стола:MySQL ALTER/UPDATE table
+-----------------------------------------+-----------+------+-----+-------------------+----------------+
| 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 сек)
теперь я хочу, чтобы обновить/изменить таблицу так, чтобы:
- теперь любое значение NULL добавляется к таблице обрабатывается и обрабатывается как значение «0» (действительно интересно знать, действительно ли это возможно, если это тогда, мне не нужно будет менять нагрузку запросов INSERT во многих моих сценариях Python в другом месте!)
- все сохраненные значения NULL от/изменено на «0».
Я полностью застрял в этом, потому что, с одной стороны, я хочу, чтобы мой SQL-запрос обновил новое правило в таблице, а на другом изменил текущие значения NULL и как новичок, это немного более промежуточное для моего текущее понимание.
До сих пор у меня есть:
ALTER TABLE `results` MODIFY `<col_name>` INT(11) NOT NULL;
И я буду делать это для каждого столбца, который в настоящее время позволяет NULL значения. Однако я не знаю, как изменить сохраненные значения NULL на «0».
Любой ввод оценивается.
okay ... так что сначала вы хотите выполнить запрос «update», чтобы все нули были нули нули. то вы хотите изменить каждый столбец и сделать его тем же, кроме добавления к нему «default 0» (и «не null») –
'update table_name set test_col = ifnull (test_col, 0)' и сделать это для каждого столбца, поэтому они имеют 0 вместо нулей ...... –
Спасибо, отлично работает. –