#mysql #information-schema
#mysql #информация-схема
Вопрос:
У меня есть несколько баз данных, в которых есть таблицы с одинаковыми именами.
Я имею в виду, я получил следующие базы данных mydb1
, mydb2
и т. Д
и каждая mydb имеет таблицу с именем myTable
. Но в этих таблицах есть разные столбцы:
myTable in mydb1
id, name, age
myTable in mydb2
id, name, street, size
Теперь, если бы у меня была только одна база данных, mydb1
тогда у меня также была только одна таблица MyTable
. Если бы я хотел узнать все столбцы в этой таблице, я бы сделал следующий sql-запрос
use information_schema;
select column_name from columns where table_name = 'myTable';
В этом случае это работает нормально, я получаю столбцы, которые я ищу.
Но в моем случае у меня есть несколько таблиц с именем MyTable в разных базах данных. И тот же sql-запрос выдает:
id, name, age, id, name, street, size
Но я просто хочу иметь столбцы mydb1.myTable
.
Как я могу получить только имена столбцов только из одного myTable
?
Подсказка: я просто хочу, чтобы имена столбцов не указывали тип, обнуляли другие ключи. Следовательно, запрос show columns from mydb1.myTable
— это не то, что я ищу.
Комментарии:
1. Извините, я не понимаю. Вы можете увидеть в моем посте, что я пробовал.
Ответ №1:
TABLE_SCHEMA
Столбец в columns
таблице содержит имя базы данных, поэтому вы можете сделать это следующим образом:
select column_name from columns where table_name = 'myTable' AND table_schema = 'mydb1';
Комментарии:
1. Спасибо за ответ. Я лично считаю, что имя столбца table_schema не имеет большого значения для столбца, который содержит имя базы данных.