Thanks , but there is no trigger on tables.

Even I solved the problem after googling a link but cannot understand below mentioned things :- Please have some comments on them

misiaq wrote:
Any triggers on this table..?

"Adarsh Sharma" <adarsh.sha...@orkash.com> pisze:
Dear all,

I have a login table in the database whose definition is as :

 CREATE TABLE `login` (
  `log_id` int(4) NOT NULL AUTO_INCREMENT,
  `user_id` int(4) DEFAULT NULL,
  `log_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `log_status` int(4) DEFAULT NULL,
  PRIMARY KEY (`log_id`),
  KEY `user_id` (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=31592 DEFAULT CHARSET=latin1

Today don't know why below error occurs when i am going insert some data in it :

mysql> insert into login(user_id,log_status) values(2,1);
ERROR 1062 (23000): Duplicate entry '31592' for key 'PRIMARY'

I check the latest entries as :

mysql> select * from login order by log_id desc limit 10;
+--------+---------+---------------------+------------+
| log_id | user_id | log_time            | log_status |
+--------+---------+---------------------+------------+
|  31591 |       2 | 2011-04-27 18:00:07 |          0 |
|  31590 |      25 | 2011-04-27 17:55:25 |          0 |
|  31589 |      40 | 2011-04-27 15:16:25 |          0 |
|  31588 |      18 | 2011-04-27 14:40:47 |          0 |
|  31587 |      30 | 2011-04-27 09:46:56 |          1 |
|  31586 |      17 | 2011-04-27 09:25:29 |          1 |
|  31585 |       8 | 2011-04-27 09:25:22 |          1 |
|  31584 |      57 | 2011-04-27 09:16:09 |          1 |
|  31583 |      40 | 2011-04-27 09:15:43 |          1 |
|  31582 |      59 | 2011-04-27 09:14:01 |          1 |
+--------+---------+---------------------+------------+
10 rows in set (0.00 sec)

I don't know why it refuses to insert new row in that table yet it is auto-increment mentioned in schema definition

I researched a lot but donot find any thing about it. Please guide me how to trouble shoot it.

Here is some useful information that might help :

***************************************************************************************************
mysql> select count(*) from login;
+----------+
| count(*) |
+----------+
|    31581 |
+----------+
1 row in set (0.00 sec)

mysql> insert into login(user_id,log_status) values(2,1);
ERROR 1062 (23000): Duplicate entry '31592' for key 'PRIMARY'

mysql> select max(log_id) from login;
+-------------+
| max(log_id) |
+-------------+
|       31591 |
+-------------+
1 row in set (0.00 sec)
********************************************************************************************************

It means there are 31581 rows but max(log_id suggests 10 more , how this could be possible, may be some rows deleted.

I solved the error by repairing the table

> repair table login;
mysql> repair table login;
+------------------+--------+----------+--------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+------------------+--------+----------+--------------------------------------------+
| attendance.login | repair | warning | Number of rows changed from 31581 to 31583 | | attendance.login | repair | status | OK |
+------------------+--------+----------+--------------------------------------------+
2 rows in set (0.29 sec)

Then all insert statements works .

Can u please explain the root cause & solution too.

Thanks
mysql> select min(log_id) from login;
+-------------+
| min(log_id) |
+-------------+
|           1 |
+-------------+
1 row in set (0.00 sec)

mysql>

mysql> select * from login where log_id=31592;
Empty set (0.00 sec)

Don't know how things got wrong. Please guide


Thanks


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=mis...@poczta.fm




Reply via email to