这个MySQL语法出了什么问题?

时间:2016-05-10 21:44:29

标签: mysql sql syntax-error ddl create-table

好吧,所以我试图将我正在制作的Spigot插件绑定到MySQL中,并且我成功完成了直到我编辑创建表的代码。我发现MySQL堆栈的痕迹太模糊而不实用,所以我不知道我在这里做错了什么。 代码:

CREATE TABLE IF NOT EXISTS WebsiteLink_keys(id INT NOT NULL KEY AUTO_INCREMENT, key VARCHAR(36), trimmedUUID VARCHAR(36), playerUUID VARCHAR(36), date TIMESTAMP, status TEXT);

2 个答案:

答案 0 :(得分:2)

key是MySQL中的保留字。如果您绝对必须将其用作列名,则可以使用反引号将其转义:

CREATE TABLE IF NOT EXISTS WebsiteLink_keys (
    id INT NOT NULL KEY AUTO_INCREMENT, 
    `key` VARCHAR(36), -- Here!
    trimmedUUID VARCHAR(36), 
    playerUUID VARCHAR(36), 
    date TIMESTAMP, 
    status TEXT
)

或者,更好的是,使用不是保留字的名称,例如link_key

CREATE TABLE IF NOT EXISTS WebsiteLink_keys (
    id INT NOT NULL KEY AUTO_INCREMENT, 
    link_key VARCHAR(36), -- Here!
    trimmedUUID VARCHAR(36), 
    playerUUID VARCHAR(36), 
    date TIMESTAMP,
    status TEXT
)

答案 1 :(得分:1)

CREATE TABLE IF NOT EXISTS WebsiteLink_keys(
  id INT NOT NULL AUTO_INCREMENT, 
  `key` VARCHAR(36), 
  trimmedUUID VARCHAR(36), 
  playerUUID VARCHAR(36), 
  `date` TIMESTAMP, 
  status TEXT, 
  PRIMARY KEY (id)
);

PRIMARY KEY(id)在最后