MariaDB / MySQL добавляет DEFAULT NULL в определение столбца, как это изменить?

0

Когда я создаю таблицу с этим утверждением:

CREATE TABLE 'change_log' (
  'object_id' int(11)
) 

MariaDB создает таблицу change_log, которая имеет DEFAULT NULL в определении таблицы для столбца object_id. То есть для утверждения:

SHOW CREATE TABLE change_log

он возвращает:

CREATE TABLE 'change_log' (
    'object_id' INT(11) NULL DEFAULT NULL
)

Как настроить mariadb/mysql, чтобы не добавлять DEFAULT NULL в этом случае?

Я использую MariaDB 10.2.14 для Windows 10

Теги:
mariadb
null

2 ответа

3

Вы должны только добавить DEFAULT NULL следующим образом:

CREATE TABLE 'change_log' (
  'object_id' int(11) DEFAULT NULL
) ENGINE=InnoDB;
  • 0
    Это не решение моей проблемы. Я не хочу запрещать NULL в этой колонке, я просто не хочу DEFAULT NULL. Я не хочу никакого значения по умолчанию там, и я хочу принять NULL там. Я не могу изменить первоначальный оператор создания таблицы, потому что он исходит из какого-то инструмента (это всего лишь пример, это большой файл дампа mysql, поэтому ручные изменения не возможны).
  • 0
    @ JohnM2 - извините, я изменил свой ответ
Показать ещё 3 комментария
1
SELECT @@sql_mode;

Вы видите STRICT_ALL_TABLES или STRICT_TRANS_MODE?

Что происходит, когда вы включаете (или исключаете) из @@sql_mode перед CREATE TABLE? Перед INSERT?

  • 0
    Да, я вижу эти значения: STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION, но теперь это ясно (см. Комментарий Solarflare и мой комментарий выше). Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню