简体   繁体   English

这种MySQL语法有什么问题?

[英]What's wrong with this MySQL syntax?

Alright so I'm trying to tie a Spigot plugin that I'm making into MySQL, and I did it successfully up until the point where I edited the code that was creating the table. 好吧,所以我试图将我制作的Spigot插件与MySQL绑定在一起,直到我编辑创建表的代码之前,我都成功完成了它。 I find that MySQL stack traces are much too ambiguous to be useful, so I have no idea what I'm doing wrong here. 我发现MySQL堆栈跟踪太含糊,无法使用,因此我不知道我在做什么错。 Code: 码:

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);

key is a reserved word in MySQL. key是MySQL中的保留字。 If you absolutely must use it as a column name, you can escape it using backticks: 如果绝对必须将其用作列名,则可以使用反引号对其进行转义:

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
)

Or, better yet, use a name that isn't a reserved word, such as link_key : 或者,更好的是,使用不是保留字的名称,例如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
)
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) is at the end 主键(id)在结尾

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM