Как загрузить имена столбцов, данные из текстового файла в таблицу MySQL? - PullRequest
1 голос
/ 20 июня 2011

У меня есть набор данных с большим количеством столбцов, которые я хочу импортировать в базу данных MySQL, поэтому я хочу иметь возможность создавать таблицы без указания заголовков столбцов вручную. Скорее я хочу предоставить имя файла с метками столбца в нем (предположительно) для команды MySQL CREATE TABLE. Я использую стандартные инструменты MySQL Query Browser в Ubuntu, но я не видел опцию для этого в диалоге создания таблицы, и при этом я не мог выяснить, как написать запрос для этого, на странице документации CREATE TABLE. Но должен быть способ ...

1 Ответ

1 голос
/ 20 июня 2011

Оператор CREATE TABLE включает в себя больше, чем просто имена столбцов

  • Имя таблицы *
  • Имена столбцов *
  • Типы данных столбцов *
  • Ограничения столбцов, например NOT NULL
  • Параметры столбцов, например DEFAULT, набор символов
  • Ограничения таблиц, например PRIMARY KEY * и FOREIGN KEY
  • Индексы
  • Таблицапараметры, такие как механизм хранения, набор символов по умолчанию

* обязательный

Вы не можете получить все это только из списка имен столбцов.Вы должны написать оператор CREATE TABLE самостоятельно.


Ваш комментарий: Многие среды разработки программного обеспечения поддерживают способы объявления таблиц без использования SQL DDL.Например, Hibernate использует файлы XML.YAML поддерживается Rails ActiveRecord, PHP Doctrine и Perf's SQLFairy.Вероятно, есть другие инструменты, использующие другой формат, например JSON, но я не знаю ничего лишнего.

Но в конечном итоге все эти «упрощенные» интерфейсы не менее сложны для изучения в качестве SQL, но не могут быть представленыименно то, что делает SQL.См. Также Закон Утечки Абстракций .


Извлечение SQLFairy , потому что этот инструмент может уже преобразовывать файлы в SQL таким образом, который может вам помочь.И FWIW MySQL Query Browser (или под его текущим названием MySQL Workbench) может читать файлы SQL.Так что вам, вероятно, не нужно копировать и вставлять вручную.

...