2
votes

I tried to create to the table into my database but every time I try it says Connected Successfully. Couldn't create a table.

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 Order( Order_id int(8) AUTO_INCREMENT, Cus_id int(8), Order_date at line 1

Couldn't create table.

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 'Order(Order_id))' at line 8

I have included the code below.

CREATE TABLE Order(
Order_id int(8) AUTO_INCREMENT,
Cus_id int(8),
Order_date TIMESTAMP,
Primary Key (Order_id),
Foreign Key (Cus_id) References Customer(Cus_id))

CREATE TABLE OrderLine(
Order_id int(8),
P_code int(8),
Quantity float,
Price float,
Constraint PK_Orderline Primary Key (P_code,Order_id),
Foreign Key (P_code) References Product(P_code),
Foreign Key (Order_id) References Order(Order_id))
1
Why INT(8) instead of just INT? The 8 is junk that's ignored anyway. Also use DECIMAL(x,y) for prices, don't use FLOAT for anything financial. It will round and mangle your data in all kinds of unfortunate ways. - tadman
add space between Order and ( syntax. MYSQL assume it table name as Order( - PHP Ninja
Thanks everyone i just renamed the "Order" to "Orders" and it solved the problem - Saadman

1 Answers

1
votes

ORDER is a Reserved Keyword so if you want to use that name you need to specify it with escaping with backticks:

CREATE TABLE `Order` (...);

It's generally best to avoid table or column names that conflict with MySQL internals, so if this could be renamed, consider doing that.