SQL de création de table de clé primaire et de clé étrangère de la syntaxe

Je suis de la création d'une base de données MySQL pour les devoirs, et dans d'erreur de syntaxe #1005 dans phpmyadmin. Je pense qu'il a quelque chose à voir avec les clés étrangères mais si w3schools a est à droite de mon syntaxe devrait être bon.

Voici les instructions SQL;

create table if not exists customers
(
id int not null auto_increment, 
cust_gname varchar(20) not null, 
cust_fname varchar(30) not null, 
cust_street varchar(30) not null, 
cust_suburb varchar(30) not null, 
cust_state varchar(6) not null, 
cust_postcode varchar(4) not null, 
cust_email varchar(50) not null, 
cust_phone varchar(12), 
cust_mobile varchar(12), 
cust_user_id int, 
foreign key (cust_user_id) references users(id),
primary key (id)
);
create table if not exists ingredients
(
id int, 
name varchar(30) not null,
primary key (id)
);
create table if not exists recipes
(
id int, 
name varchar(30) not null, 
recipes_menu_id int,
foreign key (recipes_menu_id) references menus(id)
image varchar(30),
primary key (id)
);
create table if not exists ingredients_recipes
(
id int, 
ingredients_recipes_ingredient_id int,
foreign key (ingredients_recipes_ingredient_id) references ingredients(id), 
ingredients_recipes_recipe_id int,
foreign key (ingredients_recipes_recipe_id) references recipes(id),
primary key (id)
);
create table if not exists menus
(
id int, 
description varchar(30) not null, 
menus_restaurant_id int, 
foreign key (menus_restaurant_id) references restaurants(id),
primary key (id)
);
create table if not exists restaurants
(
id int, 
name varchar(30) not null, 
address1 varchar(30) not null, 
address 2 varchar(30), 
suburb varchar(30) not null, 
state varchar(10) not null, 
postcode varchar(4) not null,
primary key (id)
);
create table if not exists customers_ingredients
(
id int, 
customers_ingredients_customer_id int,
foreign key (customers_ingredients_customer_id) references customers(id), 
customers_ingredients_ingredient_id int, 
foreign key (customers_ingredients_ingredient_id) references ingredients(id),
primary key (id)
);
create table if not exists users
(
id int, 
username varchar(40) not null, 
password varchar(50) not null, 
group_id int,
created DATETIME, 
modified DATETIME,
primary key (id)
);
create table if not exists groups
(
id int, 
name varchar(10) not null, 
created DATETIME, 
modified DATETIME,
primary key (id)
);
  • le recipes table n'est pas bonne, manque un ,...
  • w3schools n'est pas un bon endroit pour apprendre le SQL. Leur site est plein d'erreurs. Le SGBD manuel est un endroit beaucoup mieux à trouver la syntaxe correcte
InformationsquelleAutor pjmil | 2013-10-26