我似乎永远无法使用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)
Run Code Online (Sandbox Code Playgroud)
当它运行时,我得到这个:
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
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚出了什么问题!如果它有任何区别,我正在使用Java.
Umb*_*lla 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
);
Run Code Online (Sandbox Code Playgroud)
上面的测试和工作,但因为你总是必须将它包装在后面的标记(在每个INSERT,UPDATE和DELETE)你可能想要改变名称,或只是养成在背面包裹所有字段的习惯,这还有其他优点.