Asif Ali Khan
Asif Ali Khan

Reputation: 7

Mysql statement is having syntax issue

I am running below the MYSQL query and getting this error. Can someone help me here? I am using xampp to run MySQL and executing the statement

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'NOT NULL, DeliveryMode varchar NOT NULL, Qty int NOT NULL, Spicy ' at line 6

Below is my create table query

CREATE TABLE Bag (
    BagId int NOT NULL AUTO_INCREMENT,
    DishName varchar NOT NULL,
    DeliveryMode varchar NOT NULL,
    Qty int NOT NULL DEFAULT 1,
    Spicy varchar(20) NULL,
    SpecialInstructionsFood varchar(250),
    BagStatus varchar(100) NOT NULL,
    DateCreated datetime DEFAULT current_timestamp(),
    DateUpdated datetime DEFAULT current_timestamp(),
    FOREIGN KEY(DishName) REFERENCES Dish(DishName),
    CONSTRAINT FK_DishName_Bag FOREIGN KEY(DishName)
    REFERENCES Dish(DishName),
    FOREIGN KEY(DeliveryMode) REFERENCES DeliveryModeType(Name),
    CONSTRAINT FK_DeliveryModeType_Bag FOREIGN KEY(DeliveryMode)
    REFERENCES DeliveryModeType(Name),
    FOREIGN KEY(Spicy) REFERENCES SpicyType(Name),
    CONSTRAINT FK_SpicyType_Bag FOREIGN KEY(Spicy)
    REFERENCES SpicyType(Name),
    FOREIGN KEY(BagStatus) REFERENCES BagStatusType(Name),
    CONSTRAINT FK_BagStatusType_Bag FOREIGN KEY(BagStatus)
    REFERENCES BagStatusType(Name),
    PRIMARY KEY (BagId)
);

Upvotes: 0

Views: 43

Answers (2)

Ankit Jindal
Ankit Jindal

Reputation: 4030

CREATE TABLE Bag (
    BagId int(11) NOT NULL AUTO_INCREMENT,
    DishName varchar(100) NOT NULL,
    DeliveryMode varchar(40) NOT NULL,
    Qty int(11) NOT NULL DEFAULT 1,
    Spicy varchar(20),
    SpecialInstructionsFood varchar(250),
    BagStatus varchar(100) NOT NULL,
    DateCreated datetime DEFAULT current_timestamp(),
    DateUpdated datetime DEFAULT current_timestamp(),
    FOREIGN KEY(DishName) REFERENCES Dish(DishName),
    CONSTRAINT FK_DishName_Bag FOREIGN KEY(DishName)
    REFERENCES Dish(DishName),
    FOREIGN KEY(DeliveryMode) REFERENCES DeliveryModeType(Name),
    CONSTRAINT FK_DeliveryModeType_Bag FOREIGN KEY(DeliveryMode)
    REFERENCES DeliveryModeType(Name),
    FOREIGN KEY(Spicy) REFERENCES SpicyType(Name),
    CONSTRAINT FK_SpicyType_Bag FOREIGN KEY(Spicy)
    REFERENCES SpicyType(Name),
    FOREIGN KEY(BagStatus) REFERENCES BagStatusType(Name),
    CONSTRAINT FK_BagStatusType_Bag FOREIGN KEY(BagStatus)
    REFERENCES BagStatusType(Name),
    PRIMARY KEY (BagId)
);

Upvotes: 0

Dark Knight
Dark Knight

Reputation: 6531

When you define a varchar in mysql you must provide the max length that it supports.

So modify your columns(DishName & DeliveryMode) which uses varchar as datatype to something like varchar(50) whichever suits them.

DishName VARCHAR(50) NOT NULL, 
DeliveryMode VARCHAR(20) NOT NULL

Upvotes: 1

Related Questions