Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 你能帮我解决这些sql问题吗?_Php_Mysql_Phpmyadmin - Fatal编程技术网

Php 你能帮我解决这些sql问题吗?

Php 你能帮我解决这些sql问题吗?,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,您好,我正在使用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 ) ) ENGIN

您好,我正在使用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
尝试使用timestamp timestamp NOT NULL, 时间戳没有长度/格式选项,即:不适用于mysql 5.1,请参阅ypercube的注释


但是我会避免使用关键字和/或类型名作为标识符。

'timestamp'是MySQL的一个关键字。因此,请将列名“timestamp”更改为其他,或用grave`将其包装。您不必设置timestamp类型的列长度

主键也意味着唯一性。因此,这里不需要唯一的密钥站

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

这个应该是好的

对字段名使用时间戳是不好的。根据错误消息,您的站线末尾也有一个默认值。您确定这是您的准确输入吗?而且由于您将station作为主键,因此不需要对其进行其他唯一约束。实际上,时间戳长度/格式有一个选项。MySQL 5.0.51创建表,但在运行OP代码时显示此警告:“TIMESTAMP14”已弃用;改用“时间戳”
CREATE TABLE metars(
metar varchar( 255 ) NOT NULL default '',
`timestamp` timestamp,
station varchar( 4 ) NOT NULL,
PRIMARY KEY ( station )
) ENGINE = MYISAM 
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