Сохраняет ли MODIFY другие атрибуты столбца в MariaDB?

#sql #mariadb #ddl

#sql #mariadb #ddl

Вопрос:

Этот пример взят из базы знаний MariaDB:

 CREATE TABLE t1 (
  a INT UNSIGNED AUTO_INCREMENT PRIMARY_KEY,
  b VARCHAR(20) NOT NULL UNIQUE
);
ALTER TABLE t1 MODIFY b VARCHAR(40);
  
  1. Все b еще будет NOT NULL после этого утверждения?
  2. b К нему по-прежнему будет привязано ограничение уникальности?

Предположим, что используется последняя версия MariaDB.

Ответ №1:

После самостоятельного тестирования я пришел к выводу, что:

  1. b атрибут не будет сохранен NOT NULL ; он сбрасывается на значение по умолчанию, позволяющее использовать нули.
  2. Ограничение уникальности остается.

По-видимому, я также полностью упустил из виду тот факт, что база знаний объясняет это поведение: https://mariadb.com/kb/en/alter-table/#modify-column

Комментарии:

1. Подумайте об этом так: (1) индексация отделена от определения столбца, но (2) атрибуты должны быть указаны при MODIFYing (или CHANGEing ) столбце.