Hi,
I am using MySQL Version 5.0.37-community-log
My table structure is
CREATE TABLE `<tablename>` (
`id` int(11) NOT NULL default '0',
`date_of_birth` datetime NOT NULL default '0000-00-00 00:00:00',
`last_date` datetime NOT NULL default '0000-00-00 00:00:00',
`expiry_date` datetime NOT NULL default '0000-00-00 00:00:00',
`sesskey` varchar(32) NOT NULL default '',
`sessdata1` varchar(255) default NULL,
`sessdata2` varchar(255) default NULL,
PRIMARY KEY (`sesskey`),
) ENGINE=MYISAM;
mysql >SELECT * FROM <tablename> WHERE sesskey = 'bn';
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
| id | date_of_birth | last_date | expiry_date | sesskey | sessdata1 | sessdata2 |
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
| 0 | 2010-06-30 13:06:23 | 2010-06-30 13:07:36 | 2010-06-30 13:07:36 | bn | a1 | b2 |
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
1 row in set (0.00 sec)
After this I have executed the below querys
mysql> INSERT INTO <tablename> (sesskey, sessdata1, sessdata2, expiry_date, last_date, date_of_birth)
VALUES ('bn', 'aaaa', 'bbbb', DATE_ADD(NOW(), INTERVAL 30 MINUTE), NOW(), NOW())
ON DUPLICATE KEY
UPDATE sessdata1 = 'aaaa',
sessdata2 = 'bbbb';
Query OK, 0 rows affected (0.00 sec)
mysql >SELECT * FROM <tablename> WHERE sesskey = 'bn';
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
| id | date_of_birth | last_date | expiry_date | sesskey | sessdata1 | sessdata2 |
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
| 0 | 2010-06-30 13:06:23 | 2010-06-30 13:07:36 | 2010-06-30 13:07:36 | bn | a1 | b2 |
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
1 row in set (0.00 sec)
mysql> alter table <tablename>;
mysql >SELECT * FROM <tablename> WHERE sesskey = 'bn';
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
| id | date_of_birth | last_date | expiry_date | sesskey | sessdata1 | sessdata2 |
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
| 0 | 2010-06-30 13:06:23 | 2010-06-30 13:07:36 | 2010-06-30 13:07:36 | bn | aaaa | bbbb |
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
1 row in set (0.00 sec)
After ON DUPLICATE UPDATE query the data is not updating and immediately after altering the table the data is updated.
What would be the reason?
I am using MySQL Version 5.0.37-community-log
My table structure is
CREATE TABLE `<tablename>` (
`id` int(11) NOT NULL default '0',
`date_of_birth` datetime NOT NULL default '0000-00-00 00:00:00',
`last_date` datetime NOT NULL default '0000-00-00 00:00:00',
`expiry_date` datetime NOT NULL default '0000-00-00 00:00:00',
`sesskey` varchar(32) NOT NULL default '',
`sessdata1` varchar(255) default NULL,
`sessdata2` varchar(255) default NULL,
PRIMARY KEY (`sesskey`),
) ENGINE=MYISAM;
mysql >SELECT * FROM <tablename> WHERE sesskey = 'bn';
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
| id | date_of_birth | last_date | expiry_date | sesskey | sessdata1 | sessdata2 |
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
| 0 | 2010-06-30 13:06:23 | 2010-06-30 13:07:36 | 2010-06-30 13:07:36 | bn | a1 | b2 |
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
1 row in set (0.00 sec)
After this I have executed the below querys
mysql> INSERT INTO <tablename> (sesskey, sessdata1, sessdata2, expiry_date, last_date, date_of_birth)
VALUES ('bn', 'aaaa', 'bbbb', DATE_ADD(NOW(), INTERVAL 30 MINUTE), NOW(), NOW())
ON DUPLICATE KEY
UPDATE sessdata1 = 'aaaa',
sessdata2 = 'bbbb';
Query OK, 0 rows affected (0.00 sec)
mysql >SELECT * FROM <tablename> WHERE sesskey = 'bn';
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
| id | date_of_birth | last_date | expiry_date | sesskey | sessdata1 | sessdata2 |
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
| 0 | 2010-06-30 13:06:23 | 2010-06-30 13:07:36 | 2010-06-30 13:07:36 | bn | a1 | b2 |
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
1 row in set (0.00 sec)
mysql> alter table <tablename>;
mysql >SELECT * FROM <tablename> WHERE sesskey = 'bn';
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
| id | date_of_birth | last_date | expiry_date | sesskey | sessdata1 | sessdata2 |
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
| 0 | 2010-06-30 13:06:23 | 2010-06-30 13:07:36 | 2010-06-30 13:07:36 | bn | aaaa | bbbb |
+----+---------------------+---------------------+---------------------+---------+-----------+-----------+
1 row in set (0.00 sec)
After ON DUPLICATE UPDATE query the data is not updating and immediately after altering the table the data is updated.
What would be the reason?