2015-04-23 4 views
-1

Я хочу создать таблицу в базе данных, а ниже - запрос, который я написал; кто-нибудь знает, почему это не работает?SQL-запрос не работает?

1064 - У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'sname varchar (255), city varchar (255), avg int (20), clg # int (20))' ​​в строке 4`

CREATE TABLE stud 
(
s# int, 
sname varchar(255), 
city varchar(255), 
avg int(20), 
clg# int(20) 
); 

ответ

3

# не является допустимым символом для идентификатора. Просто удалите его:

CREATE TABLE stud (
    s int, 
    sname varchar(255), 
    city varchar(255), 
    avg int(20), 
    clg int(20) 
); 

Вы можете ознакомиться с правилами для идентификаторов here. Обратите внимание, вы можете также поместить имя в обратные кавычки:

`s#` int, 

Однако я сильно отговорить вас от использования имен, которые должны быть экранированы.

1

Вы не можете иметь # в своих именах таблиц, измените свой сценарий на этот и повторите попытку.

CREATE TABLE stud (s int, 
sname varchar(255), 
city varchar(255), 
avg int(20), 
clg int(20)); 
+0

Это имена столбцов, но неважно - это ответ. (Вы не можете использовать символ «#» в именах таблиц: –

0

Вы не можете использовать символ '#' в именах столбцов.

+0

Это ответ: вы не можете использовать символ «#» в именах столбцов. –

0

Нельзя использовать '#' для обозначения ваших идентификаторов. Это неоднозначно для вас и других разработчиков в вашей команде. Используйте это вместо этого

CREATE TABLE stud (
sNo int, 
sname varchar(255), 
city varchar(255), 
avg int(20), 
clgNo int(20) 
); 

Называя ваши идентификаторы описательно, каждому легче понять. Однако mysql qouted Именованные правила именования позволяют ASCII: U + 0001 .. U + 007F см. here.
Идентификатор объекта MySQL Schema Rules

Смежные вопросы