SQL: установить значение по умолчанию NULL для всех столбцов без значения по умолчанию - PullRequest
1 голос
/ 27 марта 2019

Веб-хостинг, который я использую, включил StrictMode для баз данных.Все мои php-скрипты теперь перестали работать, потому что они сообщают, что я не определил значение по умолчанию для некоторых столбцов.

Поскольку у меня много столбцов в большом количестве таблиц, есть ли способ установить все столбцыс "значением по умолчанию = нет" с "значением по умолчанию = NULL"?Таким образом, он больше не сообщит мне об ошибке.

Конечно, если есть другой (лучший) способ, я буду доступен для него.

Я попытался посмотреть в сети, ноЯ не смог найти ничего подходящего для этого случая.

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Общий подход, который должен работать для каждого столбца, вызывающего ошибку, состоит в том, чтобы установить значение по умолчанию, а затем, возможно, выполнить обновление для записей обратной засыпки, в которых отсутствует значение.

ALTER TABLE yourTable ALTER some_text_column SET DEFAULT 'None';

И вотобновление:

UPDATE yourTable SET some_text_column = 'None' WHERE some_text_column IS NULL;

Вы не обязаны делать это обновление, но может иметь смысл привести старые значения пропущенных значений в соответствие с тем, как будут выглядеть новые записи.

0 голосов
/ 27 марта 2019

Вы можете изменить столбец

ALTER TABLE table_name
 MODIFY COLUMN col datatype  DEFAULT null
...