SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 07.11.2010 21:34:57

Edutybq
Участник
Зарегистрирован: 07.11.2010
Сообщений: 5

ошибка 1064

При выполнении запроса MySql выдает ошибку 1064

Ответ MySQL:
#1064 - You have an error in your SQL syntax near 'DEFAULT CHARACTER SET utf8    COLLATE utf8_general_ci' at line 5

Что не так написал?


Комментарий модератора
По итогам многочисленных обсуждений на форуме была написана статья Как исправить ошибку mysql 1064


Прикрепленные файлы:
Attachment Icon tables.sql, Размер: 20,100 байт, Скачано: 828

Неактивен

 

#2 07.11.2010 22:51:56

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: ошибка 1064

Закрывающую скобку перед type забыли:

CREATE TABLE Country(
        country_code                 char(2) not null,
        country_name                 varchar(60) not null,
        primary key(country_code))
type=innodb DEFAULT CHARACTER SET utf8    COLLATE utf8_general_ci;

Неактивен

 

#3 07.11.2010 23:04:11

Edutybq
Участник
Зарегистрирован: 07.11.2010
Сообщений: 5

Re: ошибка 1064

не помогло (

Неактивен

 

#4 07.11.2010 23:22:25

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: ошибка 1064

А что пишет?

Неактивен

 

#5 07.11.2010 23:24:32

Edutybq
Участник
Зарегистрирован: 07.11.2010
Сообщений: 5

Re: ошибка 1064

Тоже самое
#1064 - You have an error in your SQL syntax near 'DEFAULT CHARACTER SET utf8    COLLATE utf8_general_ci' at line 5

Неактивен

 

#6 07.11.2010 23:27:20

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: ошибка 1064

mysql> CREATE TABLE Country(country_code char(2) not null, country_name varchar(60) not null, primary key(country_code))engine=innodb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 0 rows affected (0.09 sec)
 

Неактивен

 

#7 07.11.2010 23:40:34

Edutybq
Участник
Зарегистрирован: 07.11.2010
Сообщений: 5

Re: ошибка 1064

Блин! не получается
SQL-запрос : 

CREATE TABLE Country(
country_code char( 2 ) NOT NULL ,
country_name varchar( 60 ) NOT NULL ,
PRIMARY KEY ( country_code )
)engine = innodb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci


Ответ MySQL:
#1064 - You have an error in your SQL syntax near 'engine=innodb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci' at line 5

Неактивен

 

#8 07.11.2010 23:42:39

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: ошибка 1064

Где исполняете запрос?
Версия сервера? У вас в оригинале было ключевое слово type вместо engine.

Неактивен

 

#9 07.11.2010 23:47:57

Edutybq
Участник
Зарегистрирован: 07.11.2010
Сообщений: 5

Re: ошибка 1064

MySQL 3.23.53
phpMyAdmin 2.5.6

Неактивен

 

#10 07.11.2010 23:54:28

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: ошибка 1064

В третьей версии нужно писать type. Engine стали использовать позже.
Ну и ещё в третьей версии отсутствуют кодировки как класс.

Рекомендую использовать более актуальную версию. Ну,и phpMyAdmin - плохой выбор.
Посмотрите статью http://sqlinfo.ru/articles/info/6.html

Неактивен

 

#11 09.11.2010 22:00:28

belka-paniker
Участник
Зарегистрирован: 09.11.2010
Сообщений: 3

Re: ошибка 1064

Подскажите, пожалуйста, что не так в запросе на выборку

SELECT l9_aud.naim_aud,  l9_day.naim_day,  l9_dis.naim_dis,    l9_prep.naim_prep,  l9_time.naim_time,  l9_type.naim_type,  l9_week.number_week,  l9_rasp.n_week, l9_rasp.n_day  FROM l9_aud INNER JOIN (l9_day INNER JOIN (l9_dis INNER JOIN (l9_prep INNER JOIN (l9_time INNER JOIN (l9_type INNER JOIN (l9_week INNER JOIN l9_rasp ON l9_week.kod_w = l9_rasp.n_week) ON l9_type.kod_type = 9_rasp.n_type) ON l9_time.kod_time = l9_rasp.n_time) ON l9_prep.kod_prep = l9_rasp.n_prep) ON l9_dis.kod_dis = l9_rasp.n_dis) ON l9_day.kod_day = l9_rasp.n_day) ON l9_aud.kod_aud = 9_rasp.n_aud
WHERE (((l9_rasp.n_week)='1' AND ((l9_rasp.n_day)='1'))


запрос в phpMyAdmin выдает ошибку
#1064 - You have an error in your SQL syntax near '( l9_day
INNER  JOIN ( l9_dis
INNER  JOIN ( l9_prep
INNER  JOIN ( l9_time
INNER ' at line 3

таблица l9_rasp - главная, остальные справочники. все поля главной таблицы являются вторичными ключами и связаны со справочниками. Если писать просто select * from l9_rasp, то выдает номера кодовых полей справочников, а мне нужны поля-наименования. Если с помощью INNER JOIN выбирать любое одно поле, то все работает нормально, а все поля не выбирает

Неактивен

 

#12 09.11.2010 23:07:57

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: ошибка 1064

У Вас синтаксис неправильный. Правильный синтаксис — другой smile

SELECT ... FROM a JOIN b ON ... JOIN c ON ...;

Неактивен

 

#13 09.11.2010 23:14:14

belka-paniker
Участник
Зарегистрирован: 09.11.2010
Сообщений: 3

Re: ошибка 1064

Спасибо, я уже справилась, написала SELECT a.naim_a, b.naim_b FROM a, b INNER JOIN c ON a.kod_a=c.kod_a AND b.kod_b=c.kod_b
так тоже все работает. Или надо исправить на ваш синтаксис а у меня случайно получилось?

Отредактированно belka-paniker (09.11.2010 23:15:14)

Неактивен

 

#14 09.11.2010 23:27:26

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: ошибка 1064

Лучше придерживаться одного синтаксиса — или запятые, или JOIN. Просто
для того, чтобы когда Вы будете читать этот код через год, не возникло вопроса,
что же Вы тут понаписали smile

То есть или «FROM a, b, c WHERE все условия», или «FROM a JOIN b ON условие
связи a и b JOIN c ON условие связи с c WHERE ограничения».

Неактивен

 

#15 09.11.2010 23:36:01

belka-paniker
Участник
Зарегистрирован: 09.11.2010
Сообщений: 3

Re: ошибка 1064

Большое спасибо smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson