Hi everyone,

I¹m trying to figure out the best sequence to enter data into my database
(the SQL code for the structure is included below). If I have a number of
tab delimited .txt files containing the data for the different tables, I
thought as a first step I could use the following code to populate the
garments table:

 LOAD DATA INFILE 'garments.txt'
 INTO TABLE garments
 FIELDS TERMINATED BY '\t'
 LINES TERMINATED BY '\r'

I also thought I could use the same code to insert the data into the
colours, sizes and categories tables. My problem starts when I have to try
to enter the correct garment_id from the garments table into the correct
foreign key fields in the garments_to_colour, garments_to_sizes and
garments_to_categories look up tables. Do I need to do this manually or can
I use the last_insert_id() function? But not sure if this would work since
I¹m not populating the garments table one row at a time ­ I¹m inserting all
info in one go with LOAD DATA INFILE,  as mentioned above.

Just wondered if someone could help solve this problem?

 CREATE TABLE `garments` (
 `garment_id` smallint(5) unsigned NOT NULL auto_increment,
 `supplier` varchar(30) NOT NULL,
 `garment_type` varchar(30) NOT NULL,
 `title` varchar(60) NOT NULL,
 `code` varchar(20) NOT NULL,
 `description` varchar(400) NOT NULL,
 `extra_info` varchar(50) default NULL,
 `image` enum('y','n') NOT NULL,
 `swatch_image` enum('y','n') NOT NULL,
 PRIMARY KEY (`garment_id`),
 UNIQUE KEY `supplier` (`supplier`,`garment_type`, `description`,
`title`,`code`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


 CREATE TABLE `colours` (
 `colour_id` smallint(5) unsigned NOT NULL auto_increment,
 `colour` varchar(20) NOT NULL,
 PRIMARY KEY (`colour_id`),
 UNIQUE KEY `colour` (`colour`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


 CREATE TABLE `garment_to_colour` (
 `garment_id` smallint(5) unsigned NOT NULL,
 `colour_id` smallint(5) unsigned NOT NULL,
 PRIMARY KEY (`garment_id`,`colour_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1;


 CREATE TABLE `sizes` (
 `size_id` smallint(5) unsigned NOT NULL auto_increment,
 `size` varchar(15) NOT NULL,
 PRIMARY KEY (`size_id`),
 UNIQUE KEY `size` (`size`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


 CREATE TABLE `garment_to_size` (
 `garment_id` smallint(5) unsigned NOT NULL,
 `size_id` smallint(5) unsigned NOT NULL,
 PRIMARY KEY (`garment_id`,`size_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1;


 CREATE TABLE `categories` (
 `cat_id` smallint(5) unsigned NOT NULL auto_increment,
 `category` varchar(30) NOT NULL,
 PRIMARY KEY (`cat_id`),
 UNIQUE KEY `category` (`category`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


 CREATE TABLE `garment_to_category` (
 `garment_id` smallint(5) unsigned NOT NULL,
 `cat_id` smallint(5) unsigned NOT NULL,
 PRIMARY KEY (`garment_id`,`cat_id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1;


Reply via email to