Вы можете помочь мне с этой проблемой sql? - PullRequest
0 голосов
/ 21 июля 2011

привет, я использую phpmyadmin 3.3.9. У меня есть проблема SQL, в которой я не знаю, в чем проблема вообще ..

вот код выглядит так:

CREATE TABLE metars(
metar varchar( 255 ) NOT NULL default '',
timestamp timestamp( 14 ) NOT NULL ,
station varchar( 4 ) NOT NULL,
PRIMARY KEY ( station ) ,
UNIQUE KEY station( station )
) ENGINE = MYISAM 

и вот ошибка:

#1064 - 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 '( 14 ) NOT NULL , station varchar( 4 ) NOT NULL default '', PRIMARY KE' at line 3

Ответы [ 3 ]

4 голосов
/ 21 июля 2011

Попробуйте это с timestamp timestamp NOT NULL ,
Для метки времени нет опции длины / формата (то есть: не для mysql 5.1, см. Комментарий ypercube)

см. http://dev.mysql.com/doc/refman/5.1/en/create-table.html

data_type:
    BIT[(length)]
  | TINYINT[(length)] [UNSIGNED] [ZEROFILL]
  | SMALLINT[(length)] [UNSIGNED] [ZEROFILL]
  | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]
  | INT[(length)] [UNSIGNED] [ZEROFILL]
  | INTEGER[(length)] [UNSIGNED] [ZEROFILL]
  | BIGINT[(length)] [UNSIGNED] [ZEROFILL]
  | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]
  | DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]
  | NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL]
  | DATE
  | TIME
  | <b>TIMESTAMP</b>
  | DATETIME
  | YEAR
  | CHAR[(length)]
 [...]

Но я бы не использовал ключевые слова и / или имена типов в качестве идентификаторов.

3 голосов
/ 21 июля 2011

'timestamp' является ключевым словом MySQL.Таким образом, измените имя столбца timestamp на другое или перенесите его на grave (`).И вам не нужно устанавливать длину столбца типа timestamp.

И PRIMARY KEY также означает уникальность.Таким образом, станция UNIQUE KEY (станция) здесь не нужна.

CREATE TABLE metars(
metar varchar( 255 ) NOT NULL default '',
`timestamp` timestamp,
station varchar( 4 ) NOT NULL,
PRIMARY KEY ( station )
) ENGINE = MYISAM 
0 голосов
/ 21 июля 2011
CREATE TABLE metars(
`metar` varchar( 255 ) NOT NULL default '',
`timestamp` timestamp( 14 ) NOT NULL ,
`station` varchar( 4 ) NOT NULL,
PRIMARY KEY ( `station` ) ,
UNIQUE KEY station( `station` )
) ENGINE = MYISAM

это должно быть хорошо

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