MYSQL - Cannot able to create table
-
21-09-2019 - |
Question
I am using MYSQL 5.1. When i am going create a table, it throws error like this,
Query:
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)
)
Error:
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)
Solution
DESC
is a reserved word, wrap it around with backticks..
`DESC`
OTHER TIPS
DESC
is a reserved MYSQL word (ever used ORDER BY Column1 DESC
???).
Enclose the word in backticks (`) and query will run fine:
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)
)
Though I recommend renaming the column to avoid further trouble.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow