我正在尝试将以下代码导入MySQL数据库。但是它说我在第9行有一个涉及')'令牌的错误。知道怎么解决吗?错误信息是:
您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在第9行的')'附近使用正确的语法 您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在第6行的')'附近使用正确的语法 您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在第10行的')'附近使用正确的语法
CREATE TABLE user_types (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(64),
description VARCHAR(255),
rank INT UNSIGNED NOT NULL DEFAULT 1
);
CREATE TABLE users (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(64),
email VARCHAR(64) NOT NULL,
password VARCHAR(255) NOT NULL,
ip_address VARCHAR(255),
user_agent VARCHAR(255),
type INT UNSIGNED NOT NULL DEFAULT 1,
first_name VARCHAR(64),
last_name VARCHAR(64),
biography TEXT,
dob_month INT UNSIGNED,
dob_year INT UNSIGNED,
dob_day INT UNSIGNED,
interests VARCHAR(255),
gender VARCHAR(64),
created INT UNSIGNED NOT NULL
);
CREATE TABLE sessions (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
ip_address VARCHAR(255),
user_agent VARCHAR(255),
created INT UNSIGNED NOT NULL,
last_activity INT UNSIGNED NOT NULL DEFAULT 0
);
答案 0 :(得分:6)
在最后一列之后,有几个CREATE TABLE
语句有一个尾随逗号,应删除。
例如:
CREATE TABLE announcements (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
title VARCHAR(255),
content TEXT,
labels VARCHAR(255),
created INT UNSIGNED NOT NULL,
archived INT(1) NOT NULL DEFAULT 0,
);
应该是:
CREATE TABLE announcements (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
title VARCHAR(255),
content TEXT,
labels VARCHAR(255),
created INT UNSIGNED NOT NULL,
archived INT(1) NOT NULL DEFAULT 0
);
通过这些更改,架构在SQL Fiddle上成功构建。