我正在尝试为MySQL数据库创建表,但我遇到了一些语法问题。由于某种原因,似乎语法检查在表之间表现不同。虽然我已经完成了所有其他表格,但表格'stock'似乎并没有起作用,尽管似乎使用了相同的语法模式。
CREATE TABLE users (
user_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(30) NOT NULL,
password CHAR(41) NOT NULL,
date_joined DATETIME NOT NULL,
funds DOUBLE UNSIGNED NOT NULL,
PRIMARY KEY(user_id),
UNIQUE KEY(username)
);
CREATE TABLE owned_stocks (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id SMALLINT UNSIGNED NOT NULL,
paid_price DOUBLE UNSIGNED NOT NULL,
quantity MEDIUMINT UNSIGNED NOT NULL,
purchase_date DATETIME NOT NULL,
PRIMARY KEY(id)
);
CREATE TABLE tracking_stocks (
ticker VARCHAR(5) NOT NULL,
user_id SMALLINT UNSIGNED NOT NULL,
PRIMARY KEY(ticker)
);
CREATE TABLE stocks (
ticker VARCHAR(5) NOT NULL,
last DOUBLE UNSIGNED NOT NULL,
high DOUBLE UNSIGNED NOT NULL,
low DOUBLE UNSIGNED NOT NULL,
company_name VARCHAR(30) NOT NULL,
last_updated INT UNSIGNED NOT NULL,
change DOUBLE NOT NULL,
percent_change DOUBLE NOT NULL,
PRIMARY KEY(ticker)
);
我是否只是错过了一个非常明显的语法问题?
ERROR:
#1064
- 您的SQL语法出错;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 'change DOUBLE NOT NULL,percent_change DOUBLE NOT NULL,last
。附近 DOUBLE'在第4行
答案 0 :(得分:3)
'stocks'字段名称'change'是一个保留的mysql字。尝试用不同的字段名称替换它?
供参考:http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
答案 1 :(得分:1)