I'm a student and I'm just trying out some basic mysql. However I keep getting the same error when it comes to the following piece of code.
Error Code: 1005. Can't create table 'mydatabase.orders' (errno: 150)
CREATE TABLE Customer
(
P_ID int(3) UNSIGNED NOT NULL,
LastName varchar(10) NOT NULL,
FirstName varchar(10) NOT NULL,
Address varchar(20) NOT NULL,
City varchar(10) NOT NULL
);
CREATE TABLE Orders
(
O_ID int(3) UNSIGNED NOT NULL,
OrderNo int NOT NULL,
P_ID int(3) UNSIGNED NOT NULL,
PRIMARY KEY (O_ID),
FOREIGN KEY(P_ID)REFERENCES Customer(P_ID)
);
This should work, there was no PRIMARY KEY
on the Customer table.
EDIT deleted the ON DELETE CASCADE ON UPDATE CASCADE
clause, maybe is not needed
CREATE TABLE Customer(
P_ID int(3) UNSIGNED NOT NULL,
LastName varchar(10) NOT NULL,
FirstName varchar(10) NOT NULL,
Address varchar(20) NOT NULL,
City varchar(10) NOT NULL,
PRIMARY KEY (`P_ID`)
);
CREATE TABLE Orders(
O_ID int(3) UNSIGNED NOT NULL,
OrderNo int(3) NOT NULL,
P_ID int(3) UNSIGNED NOT NULL,
PRIMARY KEY (O_ID),
CONSTRAINT `P_ID` FOREIGN KEY(`P_ID`) REFERENCES `Customer` (`P_ID`)
);