Как я могу получить значение по умолчанию столбца для пустой таблицы в MySQL?

У меня есть таблица с двумя столбцами.

+-------------+---------------+
|    User     |    Active     |
+-------------+---------------+
|    Geoff    |       1       |
|    Bob      |       1       |
+-------------+---------------+

Активный столбец tinyint со значением по умолчанию 0. Однако иногда значение по умолчанию устанавливается в 1, так что все будущие пользователи автоматически устанавливаются как активные.

Я могу установить значение по умолчанию, используя этот запрос:

ALTER TABLE `Users` MODIFY COLUMN `Active` tinyint(1) NOT NULL DEFAULT '1';

Теперь мне нужно написать запрос, чтобы определить значение столбца по умолчанию.

Это возможно?

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

4 ответа

Решение
SHOW COLUMNS FROM dbname.tablename;

Выход

Field       Type            Null        Key     Default     Extra
col1        int(10)         NO          PRI                 auto_increment      
col2        smallint(10)    YES                 0       

Здесь в столбце по умолчанию показано, установлено ли какое-либо значение по умолчанию или нет

SHOW CREATE TABLE Users

Покажет вам больше, чем просто это.

Вы также можете запросить information_schema

select c.COLUMN_DEFAULT
from information_schema.`COLUMNS` c
where c.TABLE_SCHEMA = 'MyDatabaseName'
  and c.TABLE_NAME = 'Users'
  and c.COLUMN_NAME = 'Active';

Проверьте таблицу INFORMATION_SCHEMA.COLUMNS, столбец COLUMN_DEFAULT . Дополнительная информация - dev.mysql.com/doc/refman/5.1/en/columns-table.html

Тип SHOW CREATE TABLE Users и вы увидите вывод создания таблицы со значением по умолчанию для столбцов.

С уважением

Другие вопросы по тегам