Hi, I am experiencing some really bizzare behaviour in MySQL v3.23.36...

I have a perl script that takes some html form based user input, parses
it into an array and then loops throught the array inserting each
element into a table.  This table is then left outer joined with others
for a quick query, and then the data is deleted.  During debugging, I
have noticed some really strange stuff.  I have not figured out how to
consitently reproduce it, but Im still trying...

So heres what happens.  If 9 rows are entered into the table, what
happens normally is this:
mysql> select * from idsearch;
+----+---------+--------+
| id | queryid | userid |
+----+---------+--------+
|  1 | 1       | bryan  |
|  2 | 2       | bryan  |
|  3 | 3       | bryan  |
|  4 | 4       | bryan  |
|  5 | 5       | bryan  |
|  6 | 6       | bryan  |
|  7 | 7       | bryan  |
|  8 | 8       | bryan  |
|  9 | 9       | bryan  |
+----+---------+--------+
9 rows in set (0.00 sec)

Looks fine to me.

BUT about 50% of the time, the table comes out like this:
mysql> select * from idsearch;
+----+---------+--------+
| id | queryid | userid |
+----+---------+--------+
| 25 | 9       | bryan  |
| 24 | 8       | bryan  |
| 23 | 7       | bryan  |
| 22 | 6       | bryan  |
| 21 | 5       | bryan  |
| 20 | 4       | bryan  |
| 19 | 3       | bryan  |
| 18 | 2       | bryan  |
| 17 | 1       | bryan  |
+----+---------+--------+
9 rows in set (0.00 sec)

id is defined as auto_increment not null...
The starting point of my 'auto_decrement' :P is as far as I can tell
completely random.  
Here is my perl code in a nutshell:

## Insert data
for (my $i=0; $i < @array; $i++) {
  Data::Table::fromSQL( $dbh, "insert into mytable (queryid, userid) values
('$array[$i]', 'bryan')");
}

## Select table
my $table = Data::Table::fromSQL( $dbh, "select * from idsearch");

## Delete data
Data::Table::fromSQL( $dbh, "delete from idsearch where userid='bryan'");

** I use the Data::Table module from perl to execute queries. And in this
example I leave out the left outer join.

Can anyone postulate how this is possible?  I suspect it may have something
to do with the fact that I delete the records immediately after I insert
them causing some glitch between auto_incrementation and writing of the data
block... but this is still strange.

I have verified doing various debugging that even in the table that is
tweaked, each row is added in the correct order (1-9) from the array,
and the script itself seems to be working just fine.  In fact, if I
comment out the delete statement, and do a manual delete on every reload
of the page, it works fine.  But uncomment that statement and things get
screwy again.

Can anyone offer suggestions as to what I might be doing wrong or what I
should look at?

Thanks!
Bryan

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <mysql-unsubscribe-##L=##[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to