MySQL - выбор только значения по умолчанию из столбца - PullRequest
1 голос
/ 21 марта 2019

Мне интересно, можно ли выбрать только значение по умолчанию для пустого столбца?У меня есть абсолютно пустая таблица, и я хочу просто выбрать одно из значений по умолчанию для столбцов - это важно для моего приложения JAVA, которое заполняет таблицу.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 21 марта 2019

Вы можете получить значение по умолчанию из INFORMATION_SCHEMA.COLUMNS

select COLUMN_DEFAULT
from INFORMATION_SCHEMA.COLUMNS 
where TABLE_SCHEMA='your_db' and TABLE_NAME='your_table' and COLUMN_NAME='your_column'
0 голосов
/ 21 марта 2019

Вы можете определить значение по умолчанию для столбца при создании таблицы, если вы просто хотите, чтобы MySQL вставлял ее автоматически:

create table my_table (i INT DEFAULT 1);

Но если вы хотите, чтобы значение по умолчанию сохранялось всловарь БД, вы можете получить его по этому запросу:

SELECT Column_Default
  FROM Information_Schema.Columns
WHERE Table_Schema = 'yourSchema'
  AND Table_Name = 'yourTableName'
  AND Column_Name = 'yourColumnName'
0 голосов
/ 21 марта 2019

Я могу думать только о двух способах:

Вставка строки

  1. Вставка строки без указания значения для этого столбца
  2. Выбор столбца из этогострока;он будет иметь значение по умолчанию для столбца
  3. Удалить строку

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

Использование describe (explain)

Команда describe (она же explain) описывает объекты в системе, включая таблицы.Поэтому, если вы сделаете explain YourTable, вы получите информацию о таблице, включая ее значения по умолчанию.

Вот пример из этой связанной документации:

mysql> DESCRIBE City;
+−−−−−−−−−−−−+−−−−−−−−−−+−−−−−−+−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−+
| Field      | Type     | Null | Key | Default | Extra          |
+−−−−−−−−−−−−+−−−−−−−−−−+−−−−−−+−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−+
| Id         | int(11)  | NO   | PRI | NULL    | auto_increment |
| Name       | char(35) | NO   |     |         |                |
| Country    | char(3)  | NO   | UNI |         |                |
| District   | char(20) | YES  | MUL |         |                |
| Population | int(11)  | NO   |     | 0       |                |
+−−−−−−−−−−−−+−−−−−−−−−−+−−−−−−+−−−−−+−−−−−−−−−+−−−−−−−−−−−−−−−−+

Таким образом, вы можете извлечьзначение по умолчанию из столбца Default в возвращаемых строках.


Ах, конечно, есть третий способ, см. ответ Слааксо .

...