0

I'm creating table in mysql database but it is giving error...

    CREATE  TABLE IF NOT EXISTS `EC_TIMETABLE` (
  `S_ID` VARCHAR(30) NOT NULL PRIMARY KEY,
  `SKILLSET_ID` VARCHAR(30) NULL ,
    START_DT DATETIME NULL,
    END_DT DATETIME NULL,
    REPEAT TINYINT(1) NULL,
    ALL_DAY TINYINT(1) NULL,
    CLASS_DURATION INT NULL,
    COURSE_DURATION INT NULL,
    REPEAT_TYPE VARCHAR(30) NULL,
    REPEAT_EVERY INT NULL,
    REPEAT_DAYS VARCHAR(100) NULL,
    REPEAT_FROM DATE NULL,
    REPEAT_TO DATE NULL,
    COURSE_FEE INT NULL,
    ATTENDEE_MIN INT NULL,
    ATTENDEE_MAX INT NULL,
    SEARCH_KEY TINYTEXT NULL,
    FOREIGN KEY (`SKILLSET_ID` )
    REFERENCES `EC_SKILLSET` (`S_ID` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

But it giving Error:

#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 'REPEAT TINYINT(1) NULL, ALL_DAY TINYINT(1) NULL, CLASS_DURATION INT NULL' at line 6

How to solve this one..

Chris Laplante
  • 29,338
  • 17
  • 103
  • 134
Java Developer
  • 1,873
  • 8
  • 32
  • 63

3 Answers3

3

REPEAT is a Reserved Keyword. You can still use it but you need to wrap it with backticks.

`REPEAT` TINYINT(1) NULL,

I suggest that you don't use such keywords on the reserve list to avoid neck pain in the future.

rlorenzo
  • 1,358
  • 1
  • 13
  • 16
John Woo
  • 258,903
  • 69
  • 498
  • 492
1

I believe REPEAT is a keyword in MySQL. Try renaming your column.

Stijn Haus
  • 481
  • 3
  • 18
1

First you shouldn't use REPEAT because this is reserved by mysql and secondly take a look at MySql Error 150 - Foreign keys because you have another error concerning foreign keys.

Community
  • 1
  • 1
pauel
  • 908
  • 10
  • 26