Не могу создать таблицу SQL [SQL] - PullRequest
1 голос
/ 05 марта 2012

Я не уверен, что не так с моей таблицей создания здесь. Дает мне ошибку

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
    corresponds to your MySQL server version for the right syntax to use 
    near 'character
(
character_id VarChar(15) PRIMARY KEY,
name VarChar(30) NOT NULL,
sex' at line 1

В нем нет ошибок?

CREATE TABLE character
(
character_id VarChar(15) PRIMARY KEY,
name VarChar(30) NOT NULL,
sex VarChar(7) NOT NULL,
age INT NOT NULL,
hair VarChar(10) NOT NULL,
eye VarChar(10) NOT NULL,
skin VarChar(12) NOT NULL,
body VarChar(12) NOT NULL,
from VarChar(20) NOT NULL
) engine=innobd;

Ответы [ 4 ]

3 голосов
/ 05 марта 2012

character и from являются зарезервированными словами в MySQL: http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

Чтобы использовать зарезервированное слово в качестве идентификатора поля / таблицы, вам нужно заключить его в кавычки:

create table `character` (
...
body VarChar(12) NOT NULL,
`from` VarChar(20) NOT NULL
...
0 голосов
/ 05 марта 2012

Две проблемы:

  1. Имя таблицы "символ" должно быть символами, символ является зарезервированным словом
  2. Имя поля "из" должно отличаться от ключевого слова SQL FROM

Это должно работать:

CREATE TABLE characters
(
character_id VarChar(15) PRIMARY KEY,
name VarChar(30) NOT NULL,
sex VarChar(7) NOT NULL,
age INT NOT NULL,
hair VarChar(10) NOT NULL,
eye VarChar(10) NOT NULL,
skin VarChar(12) NOT NULL,
body VarChar(12) NOT NULL,
fromX VarChar(20) NOT NULL
) engine=innobd;

Надеюсь, эта помощь.

0 голосов
/ 05 марта 2012
CREATE TABLE 'character'
(
character_id VarChar(15) PRIMARY KEY,
name VarChar(30) NOT NULL,
sex VarChar(7) NOT NULL,
age INT NOT NULL,
hair VarChar(10) NOT NULL,
eye VarChar(10) NOT NULL,
skin VarChar(12) NOT NULL,
body VarChar(12) NOT NULL,
from VarChar(20) NOT NULL
) engine=innobd;

вы пытаетесь использовать зарезервированное слово, поэтому вам нужно добавить обратную косую черту к имени таблицы. Я предлагаю изменить имя таблицы и избегать использования зарезервированных слов

0 голосов
/ 05 марта 2012

Оба из и символ являются специальными словами, зарезервированными поставщиком базы данных. Попробуйте, например, назвать столбец «предел», и вы получите тот же результат. Переименуйте таблицу и столбец из , и ваша проблема исчезнет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...