Каков правильный синтаксис для выполнения сценария .sql в командной строке MySQL? - PullRequest
3 голосов
/ 23 мая 2011

Я в замешательстве.Из ссылок, которые я видел в Интернете, команда для выполнения сценария текстового файла выглядит так:

mysql> --user=root --password=admin --database=zero <query.sql

Однако, когда я запустил это, командная строка сказала, что есть ошибка с синтаксисом mySQL (ошибка 1064).Я сохранил файл сценария query.sql в программных файлах C: ... \ MYSQL \ MYSQL Server5.1 .. (в любой папке, в которой находится терминал командной строки mySQL .exe)

Затем я сделал это:

 mysql> USE db1 \g
 mysql> source <query.sql \g

Также не работает;командная строка выдала мне ту же ошибку.Версия MySQL у меня отличается от других версий, которые я видел.Как видите, вы должны добавлять '\ g' в конце каждого запроса.

Пожалуйста, помогите, и дайте мне знать, если описание не очень ясное .. thx

РЕДАКТИРОВАНИЕ: Так вот код, который у меня есть внутри query.sql:

CREATE TABLE IF NOT EXISTS 'db1'(
'id' int(255) NOT NULL auto_increment,
'date' date NOT NULL,
'title' varchar(255) NOT NULL,
'introtext' text NOT NULL,
'maintext' text NOT NULL,
PRIMARY KEY ('id')
)

Ответы [ 3 ]

5 голосов
/ 23 мая 2011

Вы можете запустить файл SQL из клиента с помощью:

\. query.sql

В качестве альтернативы, если вы еще не в клиенте, вы можете использовать следующее из командной строки:

mysql --user=root --password=admin --database=zero < query.sql
2 голосов
/ 23 мая 2011

Удалить кавычки: 'db1'.При необходимости используйте обратные кавычки, например, для поля с именем date, чтобы идентифицировать его по типу date.И добавьте ; в конце утверждения:

CREATE TABLE IF NOT EXISTS db1(
  id int(255) NOT NULL auto_increment,
  `date` date NOT NULL,
  title varchar(255) NOT NULL,
  introtext text NOT NULL,
  maintext text NOT NULL,
  PRIMARY KEY (id)
) ;
0 голосов
/ 03 октября 2016

Вам необходимо указать БД, указав такой оператор: -

ИСПОЛЬЗОВАНИЕ (ИМЯ БАЗЫ ДАННЫХ)

Поэтому выше замените (ИМЯ БАЗЫ ДАННЫХ) на имя Базы данных

...