簡體   English   中英

語法錯誤創建一個包含名為“desc”的列的表

[英]Syntax Error Creating a table with a column named 'desc'

我似乎永遠無法用 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。

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

上面的內容已經過測試並且有效,但是由於您總是必須將其用反引號括起來(在每個INSERTUPDATEDELETE中),您可能想要更改名稱,或者只是養成將所有字段都包裹在后面的習慣-ticks,它還有其他優點。

將列名desc更改為任何不同的東西,因為它是descenddescribe的保留詞

desc是保留字 不能 作為表或列的名稱。 您可以使用description作為列名。 隨着名稱的更改,您的聲明應該有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM