Создание mysql таблица с явным набором символов по умолчанию, что, если я не делаю?

В mysql 5.x, Что является различием, если я делаю что-то вроде этого:

CREATE TABLE aTable (
    id                       BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    aNumber          bigint(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8;

с этим:

CREATE TABLE aTable (
   id                       BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   aNumber            bigint(20) DEFAULT NULL
) ENGINE=InnoDB CHARACTER SET=utf8;

Заметьте, что я не указываю набор символов как значение по умолчанию в первом. Я ничего не мог найти в mysql документах.

22
задан Brian Tompsett - 汤莱恩 21 May 2017 в 18:01
поделиться

2 ответа

Слово по умолчанию не является обязательным - поэтому два эквивалентны, то есть они устанавливают набор символов по умолчанию для таблицы.

См. Документация MySQL для Таблицы создания . Вот соответствующий бит:

table_option:
    ENGINE [=] engine_name
  ... other options ...
  | [DEFAULT] CHARACTER SET [=] charset_name
  ... more options ...

Вы можете подтвердить это с помощью команды Show Create Table .

27
ответ дан 29 November 2019 в 04:46
поделиться

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

Если вы измените таблицу, которая имеет Charset по умолчанию, установленным на что-то другое, кроме чего установлена ​​база данных, таблица по умолчанию будет переопределить по умолчанию DB.

13
ответ дан 29 November 2019 в 04:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: