2009-11-24 3 views
-1

J'utilise MYSQL 5.1. Quand je vais créer une table, il jette une erreur comme ça,MYSQL - Impossible de créer une table

Requête:

CREATE TABLE IF NOT EXISTS payment_status (
    STATUS_ID int(3) unsigned NOT NULL DEFAULT '0' , 
    STATUS_NAME varchar(50) NOT NULL DEFAULT '' , 
    DESC varchar(100) , 
    PRIMARY KEY (STATUS_ID), 
    UNIQUE KEY XPKPAYMENT_STATUS (STATUS_ID) 
) 

Erreur:

Error Code : 1064 
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 varchar(100) , 
    PRIMARY KEY (STATUS_ID), 
    UNIQUE KEY XPKPAYMENT_STATUS (S' at line 4 
(0 ms taken) 
+0

Pourquoi êtes-vous ajouterez UNIQUE KEY XPKPAYMENT_STATUS si vous avez déjà déclaré comme un – DKSRathore

+0

clé primaire Où se trouve la case à cocher pour accepter. Je ne peux pas le comprendre. – Srinivasan

Répondre

3

DESC est un mot réservé, l'enrouler autour avec .. accents graves

`DESC` 
+0

Oui, c'est l'erreur, Après avoir renommé ce mot comme description, cela fonctionne très bien. Merci .. – Srinivasan

3

DESC est un mot réservé MYSQL (jamais utilisé ORDER BY Column1 DESC ???) .

Entourez le mot que dans les apostrophes inverses (`) et requête fonctionnera bien:

CREATE TABLE IF NOT EXISTS payment_status (
    STATUS_ID int(3) unsigned NOT NULL DEFAULT '0' , 
    STATUS_NAME varchar(50) NOT NULL DEFAULT '' , 
    `DESC` varchar(100) , 
    /* note the backticks on the above line */ 
    PRIMARY KEY (STATUS_ID), 
    UNIQUE KEY XPKPAYMENT_STATUS (STATUS_ID) 
) 

Bien que je vous recommande de renommer la colonne à éviter d'autres problèmes.

Questions connexes