Re: Problems with LOAD DATA INFILE

2005-02-21 Thread John Swartzentruber
On 2/21/2005 4:21 AM Heikki Tuuri wrote:
John,
please print a detailed description of the latest foreign key error with
SHOW INNODB STATUS
and post it here.
Best regards,
Heikki Tuuri
Innobase Oy
Foreign keys, transactions, and row level locking for MySQL
InnoDB Hot Backup - a hot backup tool for InnoDB which also backs up 
MyISAM tables
http://www.innodb.com/order.php

Order MySQL Network from http://www.mysql.com/network/
Thank you! I won't bother to post the results because the command showed 
me the problem. The problem appears to be that the parser doesn't skip 
whitespace after separators as I assumed it did. The result is that my 
key was "Administrator", but it was looking for " Administrator". 
Removing all whitespace allowed it to work correctly.

To me, this parsing is either a bug or a "feature" that should be 
documented in red letters. But it isn't a InnoDB issue.

Thanks again for your help by pointing out this very useful command.


- Original Message - From: "John Swartzentruber" 
<[EMAIL PROTECTED]>
Newsgroups: mailing.database.myodbc
Sent: Sunday, February 20, 2005 11:54 PM
Subject: Problems with LOAD DATA INFILE


I am new to SQL and to MySQL, but am working with it on a project for a
graduate Database system course. I'm running MySQL 4.1.10 under Windows
2000. I am trying to load a table from a text file. The table in
question has a foreign key. The table that it references contains data.
The problem is that when I load the data using LOAD DATA LOCAL INFILE, I
get this error:
ERROR 1216 (23000): Cannot add or update a child row: a foreign key
constraint fails
That seems clear enough except that the foreign key constraint should
*not* fail. I've verified that the value exists in the other table.
What is really strange is that when I tried inserting the data directly
using "INSERT INTO", it works. In this particular case, I only need to
load a handful of records, so using INSERT INTO is an option, but I
would really like to figure out what isn't working.
Here is my table definition:
create table Subscriber (
  UserIDint auto_increment,
  Name  varchar(50) not null,
  Password  varchar(8) not null,
  EmailAddress  varchar(50),
  SGroupNamevarchar(50),
  primary key (UserId),
  foreign key (SGroupName) references AccessGroup(GroupName) on update
cascade
) ENGINE=INNODB;
Here is how I am attempting to load it:
LOAD DATA LOCAL INFILE 'c:/Documents and Settings/john/My Documents/Grad
School/Project/LoadData/Subscriber.csv'
  REPLACE
  INTO TABLE Subscriber
  FIELDS  TERMINATED BY ','
  OPTIONALLY ENCLOSED BY '"'
  ESCAPED BY '\\'
  LINES TERMINATED BY '\r\n'
  IGNORE 1 LINES
  (Name, Password, EmailAddress, SGroupName);
Here are the first two lines of my data file:
Name, Password, EmailAddress, SGroupName
"John Swartzentruber", "8490JTTT", "[EMAIL PROTECTED]", Administrator
And here is what *does* work:
 insert into Subscriber
 (Name, Password, EmailAddress, SGroupName)
  values ("John Swartzentruber", "8490JTTT", "[EMAIL PROTECTED]",
"Administrator");
Can anyone see what my problem is? I really appreciate any assistance
you can provide. I hope this is the appropriate group for newbie 
questions.

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: 
http://lists.mysql.com/[EMAIL PROTECTED]



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]


Re: Problems with LOAD DATA INFILE

2005-02-21 Thread Heikki Tuuri
John,
please print a detailed description of the latest foreign key error with
SHOW INNODB STATUS
and post it here.
Best regards,
Heikki Tuuri
Innobase Oy
Foreign keys, transactions, and row level locking for MySQL
InnoDB Hot Backup - a hot backup tool for InnoDB which also backs up MyISAM 
tables
http://www.innodb.com/order.php

Order MySQL Network from http://www.mysql.com/network/
- Original Message - 
From: "John Swartzentruber" <[EMAIL PROTECTED]>
Newsgroups: mailing.database.myodbc
Sent: Sunday, February 20, 2005 11:54 PM
Subject: Problems with LOAD DATA INFILE


I am new to SQL and to MySQL, but am working with it on a project for a
graduate Database system course. I'm running MySQL 4.1.10 under Windows
2000. I am trying to load a table from a text file. The table in
question has a foreign key. The table that it references contains data.
The problem is that when I load the data using LOAD DATA LOCAL INFILE, I
get this error:
ERROR 1216 (23000): Cannot add or update a child row: a foreign key
constraint fails
That seems clear enough except that the foreign key constraint should
*not* fail. I've verified that the value exists in the other table.
What is really strange is that when I tried inserting the data directly
using "INSERT INTO", it works. In this particular case, I only need to
load a handful of records, so using INSERT INTO is an option, but I
would really like to figure out what isn't working.
Here is my table definition:
create table Subscriber (
  UserIDint auto_increment,
  Name  varchar(50) not null,
  Password  varchar(8) not null,
  EmailAddress  varchar(50),
  SGroupNamevarchar(50),
  primary key (UserId),
  foreign key (SGroupName) references AccessGroup(GroupName) on update
cascade
) ENGINE=INNODB;
Here is how I am attempting to load it:
LOAD DATA LOCAL INFILE 'c:/Documents and Settings/john/My Documents/Grad
School/Project/LoadData/Subscriber.csv'
  REPLACE
  INTO TABLE Subscriber
  FIELDS  TERMINATED BY ','
  OPTIONALLY ENCLOSED BY '"'
  ESCAPED BY '\\'
  LINES TERMINATED BY '\r\n'
  IGNORE 1 LINES
  (Name, Password, EmailAddress, SGroupName);
Here are the first two lines of my data file:
Name, Password, EmailAddress, SGroupName
"John Swartzentruber", "8490JTTT", "[EMAIL PROTECTED]", Administrator
And here is what *does* work:
 insert into Subscriber
 (Name, Password, EmailAddress, SGroupName)
  values ("John Swartzentruber", "8490JTTT", "[EMAIL PROTECTED]",
"Administrator");
Can anyone see what my problem is? I really appreciate any assistance
you can provide. I hope this is the appropriate group for newbie 
questions.

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: 
http://lists.mysql.com/[EMAIL PROTECTED]


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]