我的SQL代码有什么问题?在第9行获得错误

时间:2015-03-20 20:24:48

标签: sql

我正在尝试将以下代码导入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
);

1 个答案:

答案 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上成功构建。