mysql - 这个 MySQL 语法有什么问题?

标签 mysql sql syntax-error ddl create-table

好吧,我正在尝试将我正在制作的 Spigot 插件绑定(bind)到 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);

最佳答案

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
)

关于mysql - 这个 MySQL 语法有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37149497/

相关文章:

mysql - 数据库分片如何工作?

javascript - Chrome 和 IE9 中出现不可见的 ILLEGAL TOKEN 错误,但 Firefox 中没有

sql - 如何正确使用自动增量

mysql - SQL初学者创建表时出错

mysql - 我无法访问 mysql 数据库中的所有表

sql - SQL Server 中的 View

c++ - 将 std::wstring 转换为 SQLWCHAR *

sql - Postgresql 中连续相同符号行的总和

vb.net - “End of Statement Expected” VB.NET错误

php - 标签是否可以保存在文本框列表输入中?