Estoy creando una base de datos MySQL para hacer la tarea, y el funcionamiento en error de sintaxis #1005 en phpmyadmin. Creo que tiene algo que ver con las claves foráneas pero si w3schools tiene es derecho mi sintaxis debe ser bueno.

He aquí las instrucciones 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)
);
  • el recipes tabla no está bien, la falta de un ,
  • w3schools no es un buen lugar para aprender SQL. Su sitio web está lleno de errores. El DBMS manual es un lugar mucho mejor para encontrar la sintaxis correcta
InformationsquelleAutor pjmil | 2013-10-26

1 Comentario

  1. 3

    Si está creando una tabla con una clave externa de referencia, la tabla a la que se refiere ya debe existir. Se está creando un customers tabla al inicio de la secuencia de comandos que se refiere a la users tabla que no se crean hasta que cerca del final. Hay otros ejemplos en la secuencia de comandos también.

    Necesita para crear las tablas en el orden correcto, o el uso set foreign_key_checks = 0; en la parte superior para desactivar este requisito. Asegúrese de que usted set foreign_key_checks = 1 al final una vez que todas las tablas se crean.

    Nota: pueden existir otros errores de sintaxis en el guión – no he revisado todo.

    • genial, no sabía que. se imaginaba que mencionar que en w3schools en la clave externa de la página…

Dejar respuesta

Please enter your comment!
Please enter your name here