2012-04-09 8 views
5

Non riesco mai a riuscire a creare tabelle MySQL con colonne del tipo TEXT. Ecco il mio MySQL:Errore di sintassi Creazione di una tabella con una colonna denominata "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) 

Quando è eseguito, ottengo questo:

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 

Non riesco a capire cosa c'è che non va! Sto usando Java se fa alcuna differenza.

+1

In un'altra nota, sono abbastanza sicuro l'utilizzo di testo per la maggior parte di queste colonne non è corretto – IcedDante

+1

Sì, la maggior parte dei quegli usi di TEXT erano piuttosto cattivi. Fortunatamente, sono migliorato moltissimo da quando ho fatto questa domanda in origine. – Greg

+1

Ho pensato che probabilmente lo avevi;) – IcedDante

risposta

14

desc è una parola riservata e non deve essere essere utilizzato come nome di una colonna. È possibile utilizzare desc come un nome di una colonna, ma se lo fai, è necessario sempre avvolgere in back-ticks.

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

Quanto sopra è testato e funziona, ma dal momento che avrete sempre a avvolgerla in back-tick (in ogni INSERT, UPDATE e DELETE) si consiglia di cambiare il nome, o semplicemente entrare in l'abitudine di avvolgere tutti i campi in back-ticks, che ha altri vantaggi.

0

desc è una parola riservata e non può non deve essere dato come nome a una tabella o una colonna. È possibile utilizzare description come nome della colonna. Con il cambio di nome, la tua dichiarazione dovrebbe funzionare.

+0

Questo non è del tutto corretto. – Umbrella

1

cambiamento il nome della colonna desc qualsiasi qualcosa di diverso dal momento che è una parola Riservata per descend o describe

Problemi correlati