我似乎永远无法使用TEXT类型的列创建MySQL表。这是我的MySQL:
CREATE TABLE factions(id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name VARCHAR(16) NOT NULL, desc TEXT NOT NULL, admins TEXT NOT NULL, mods TEXT, members TEXT, land TEXT, enemies TEXT, allies TEXT)
当它运行时,我明白了:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc text NOT NULL, admins text NOT NULL, mods text, members text, land text, en' at line 1
我无法弄清楚出了什么问题!如果它有任何不同,我正在使用Java。
答案 0 :(得分:16)
desc
是保留字,不应用作列名。您可以使用desc
作为列的名称,但如果您这样做,则必须始终将其包装在后面。“
CREATE TABLE factions(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
name VARCHAR(16) NOT NULL,
`desc` TEXT NOT NULL,
admins TEXT NOT NULL,
mods TEXT,
members TEXT,
land TEXT,
enemies TEXT,
allies TEXT
);
以上内容经过测试并且有效,但由于您总是需要将其包装在后面(每个INSERT
,UPDATE
和DELETE
中),您可能需要更改这个名字,或者只是习惯于将所有字段包裹在后面,这有其他优点。
答案 1 :(得分:1)
将列名desc
更改为任何不同的内容,因为它是descend
或describe
的保留字
答案 2 :(得分:0)
desc
是保留字,不能 不得作为表或列的名称。您可以使用description
作为列名。随着名称的更改,您的陈述应该有效。