Buenas a todos tengo un problema en un ejercicio que tengo que entregar y no se como salir de esta. Os pongo en situacion.
Cree las siguientes tablas de la base de datos ordenadores:
CREATE TABLE MARCAS
(ID_MARCA INT AUTO_INCREMENT,
MARCA VARCHAR(50),
CONSTRAINT PK_MARCAS PRIMARY KEY (ID_MARCA));
CREATE TABLE MODELOS(
ID_MOD INT AUTO_INCREMENT,
ID_MARCA INT,
MODELO VARCHAR(50),
CONSTRAINT PK_MODELOS PRIMARY KEY(ID_MOD));
CREATE TABLE equipos(
ID_EQUIPO INT AUTO_INCREMENT,
ID_MOD INT,
SO VARCHAR(10),
PRECIO INT(10),
CONSTRAINT pk_equipos PRIMARY KEY(ID_EQUIPO));
Todo correcto hasta aqui.
Cree un usuario para darle privilegios en todo y poder manejar ficheros .txt
GRANT ALL PRIVILEGES ON ordenadores.* TO usuario@localhost
IDENTIFIED BY 'passusuario';
GRANT FILE ON *.* TO 'usuario'@'localhost';
FLUSH PRIVILEGES;
Todo bien.
Lo que tengo que hacer es lo siguiente:
Establecer conexion con el usuario para acceder a la base de datos ordenadores. Analizar las tabla existentes y realizar con usuario los pasos necesarios para pasar la informacion desde el fichero ordenadores.txt a las tablas marcas, modelos, equipos, teniendo en cuenta que los campos llamados ID_ en cada tabla deben ser de tipo auto_increment.
Hice los siguiente, cree una tabla auxiliar (ya que me lo exigen) para pasarle todos los datos del fichero y funciona correctamente.
CREATE TABLE IF NOT EXISTS auxiliar(
marca varchar(50),
modelo varchar(50),
so varchar(10),
precio int(10));
LOAD DATA INFILE 'c:\\CursoMySQL\\ordenadores.txt'
INTO TABLE auxiliar
FIELDS TERMINATED BY '#' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';
¿Como hago para que me salga la informacion que carge en auxiliar en las diferentes tablas? ¿que restricciones de integridad tengo que incluir?
He probado a crear la tabla auxiliar con una clave foranea para vincular pero me da el siguiente error: ERROR 1005 (HY000): Can't create table (errno: 150)
A ver si me podeis ayudar que ando perdido y tengo que entregar esto mañana. Un saludo y gracias.