Looks correct to me.
What do you think is the problem?
2 rows were affected by the replace.
One row was deleted, and one was inserted,
Both rows had a value of 'test' for column 'Tab'.
Martin MOKREJŠ wrote:
> Hello,
> I think I've found a bug. Just by playing with REPLACE and INSERT, the
> following happened. I'm including full log, demonstrating that I don't
> understand sql at all. ;-) Can someone explain me what "2 rows affected"
> means? How can I select the second row from the table? How can I delete it?
> Please CC me in reply. Thanks.
>
>
> mysql> select * from Upd;
> +------------------------+---------------------+
> | Tab | Time |
> +------------------------+---------------------+
> | prot_data | 2001-07-20 00:45:44 |
> | contig_data | 2001-07-20 00:45:47 |
> | orf_data | 2001-07-20 00:45:48 |
> | blast_data | 2001-11-12 15:19:13 |
> | seg_data | 2001-11-12 15:19:29 |
> | nonglob_data | 2001-11-12 15:19:35 |
> | pfam_data | 2001-11-12 15:33:25 |
> | scop_data | 2001-11-12 15:33:41 |
> | mem_data | 2001-11-12 15:33:47 |
> | coils_data | 2001-11-12 15:33:54 |
> | funcat_data | 2001-11-12 15:34:15 |
> | cogs_data | 2001-11-12 15:34:59 |
> | known3d_data | 2001-11-12 15:35:11 |
> | blimps_data | 2001-11-12 15:37:55 |
> | pros_data | 2001-11-12 15:38:08 |
> | prd_data | 2001-11-12 15:39:16 |
> | scop1_data | 2001-09-02 16:34:01 |
> | scop2_data | 2001-09-02 17:05:52 |
> | blast_crossupdate_data | 2001-08-23 18:05:12 |
> | blast_self_data | 2001-10-03 05:15:48 |
> | intergenome_data | 2001-10-23 20:56:48 |
> +------------------------+---------------------+
> 21 rows in set (0.02 sec)
>
> mysql> replace into Upd Tab="test" Time=NOW();
> ERROR 1064: You have an error in your SQL syntax near 'Tab="test" Time=NOW()' at
>line 1
> mysql> replace into Upd Tab="test" Time="2";
> ERROR 1064: You have an error in your SQL syntax near 'Tab="test" Time="2"' at line 1
> mysql> replace into Upd Tab="test" Time=NOW();
> ERROR 1064: You have an error in your SQL syntax near 'Tab="test" Time=NOW()' at
>line 1
> mysql> replace into Upd set Tab="test" Time=NOW();
> ERROR 1064: You have an error in your SQL syntax near 'Time=NOW()' at line 1
> mysql> replace into Upd (Tab,Time) values ('test', NOW());
> Query OK, 1 row affected (0.02 sec)
>
> mysql> update into Upd (Tab,Time) values ('test', NOW());
> ERROR 1064: You have an error in your SQL syntax near 'into Upd (Tab,Time) values
>('test', NOW())' at line 1
> mysql> update Upd (Tab,Time) values ('test', NOW());
> ERROR 1064: You have an error in your SQL syntax near '(Tab,Time) values ('test',
>NOW())' at line 1
> mysql> update Upd set Time=NOW() where Tab="test";
> Query OK, 1 row affected (0.02 sec)
> Rows matched: 1 Changed: 1 Warnings: 0
>
> mysql> replace into Upd (Tab,Time) values ('test', NOW());
> Query OK, 2 rows affected (0.02 sec)
>
> mysql> select * from Upd;
> +------------------------+---------------------+
> | Tab | Time |
> +------------------------+---------------------+
> | prot_data | 2001-07-20 00:45:44 |
> | contig_data | 2001-07-20 00:45:47 |
> | orf_data | 2001-07-20 00:45:48 |
> | blast_data | 2001-11-12 15:19:13 |
> | seg_data | 2001-11-12 15:19:29 |
> | nonglob_data | 2001-11-12 15:19:35 |
> | pfam_data | 2001-11-12 15:33:25 |
> | scop_data | 2001-11-12 15:33:41 |
> | mem_data | 2001-11-12 15:33:47 |
> | coils_data | 2001-11-12 15:33:54 |
> | funcat_data | 2001-11-12 15:34:15 |
> | cogs_data | 2001-11-12 15:34:59 |
> | known3d_data | 2001-11-12 15:35:11 |
> | blimps_data | 2001-11-12 15:37:55 |
> | pros_data | 2001-11-12 15:38:08 |
> | prd_data | 2001-11-12 15:39:16 |
> | scop1_data | 2001-09-02 16:34:01 |
> | scop2_data | 2001-09-02 17:05:52 |
> | blast_crossupdate_data | 2001-08-23 18:05:12 |
> | blast_self_data | 2001-10-03 05:15:48 |
> | intergenome_data | 2001-10-23 20:56:48 |
> | test | 2001-11-13 22:39:40 |
> +------------------------+---------------------+
> 22 rows in set (0.02 sec)
>
> mysql> insert into Upd (Tab,Time) values ('test', NOW());
> ERROR 1062: Duplicate entry 'test' for key 1
> mysql> select * from Upd;
> +------------------------+---------------------+
> | Tab | Time |
> +------------------------+---------------------+
> | prot_data | 2001-07-20 00:45:44 |
> | contig_data | 2001-07-20 00:45:47 |
> | orf_data | 2001-07-20 00:45:48 |
> | blast_data | 2001-11-12 15:19:13 |
> | seg_data | 2001-11-12 15:19:29 |
> | nonglob_data | 2001-11-12 15:19:35 |
> | pfam_data | 2001-11-12 15:33:25 |
> | scop_data | 2001-11-12 15:33:41 |
> | mem_data | 2001-11-12 15:33:47 |
> | coils_data | 2001-11-12 15:33:54 |
> | funcat_data | 2001-11-12 15:34:15 |
> | cogs_data | 2001-11-12 15:34:59 |
> | known3d_data | 2001-11-12 15:35:11 |
> | blimps_data | 2001-11-12 15:37:55 |
> | pros_data | 2001-11-12 15:38:08 |
> | prd_data | 2001-11-12 15:39:16 |
> | scop1_data | 2001-09-02 16:34:01 |
> | scop2_data | 2001-09-02 17:05:52 |
> | blast_crossupdate_data | 2001-08-23 18:05:12 |
> | blast_self_data | 2001-10-03 05:15:48 |
> | intergenome_data | 2001-10-23 20:56:48 |
> | test | 2001-11-13 22:39:40 |
> +------------------------+---------------------+
> 22 rows in set (0.02 sec)
>
> mysql> replace into Upd (Tab,Time) values ('test', NOW());
> Query OK, 2 rows affected (0.00 sec)
>
> mysql> insert into Upd (Tab,Time) values ('test', NOW());
> ERROR 1062: Duplicate entry 'test' for key 1
> mysql> replace into Upd (Tab,Time) values ('test', NOW());
> Query OK, 2 rows affected (0.00 sec)
>
> mysql> select * from Upd;
> +------------------------+---------------------+
> | Tab | Time |
> +------------------------+---------------------+
> | prot_data | 2001-07-20 00:45:44 |
> | contig_data | 2001-07-20 00:45:47 |
> | orf_data | 2001-07-20 00:45:48 |
> | blast_data | 2001-11-12 15:19:13 |
> | seg_data | 2001-11-12 15:19:29 |
> | nonglob_data | 2001-11-12 15:19:35 |
> | pfam_data | 2001-11-12 15:33:25 |
> | scop_data | 2001-11-12 15:33:41 |
> | mem_data | 2001-11-12 15:33:47 |
> | coils_data | 2001-11-12 15:33:54 |
> | funcat_data | 2001-11-12 15:34:15 |
> | cogs_data | 2001-11-12 15:34:59 |
> | known3d_data | 2001-11-12 15:35:11 |
> | blimps_data | 2001-11-12 15:37:55 |
> | pros_data | 2001-11-12 15:38:08 |
> | prd_data | 2001-11-12 15:39:16 |
> | scop1_data | 2001-09-02 16:34:01 |
> | scop2_data | 2001-09-02 17:05:52 |
> | blast_crossupdate_data | 2001-08-23 18:05:12 |
> | blast_self_data | 2001-10-03 05:15:48 |
> | intergenome_data | 2001-10-23 20:56:48 |
> | test | 2001-11-13 22:41:21 |
> +------------------------+---------------------+
> 22 rows in set (0.02 sec)
>
> mysql> select * from Upd where Tab="test";
> +------+---------------------+
> | Tab | Time |
> +------+---------------------+
> | test | 2001-11-13 22:41:21 |
> +------+---------------------+
> 1 row in set (0.02 sec)
>
> mysql>
>
> mysql> show columns from Upd;
> +-------+--------------+------+-----+---------+-------+
> | Field | Type | Null | Key | Default | Extra |
> +-------+--------------+------+-----+---------+-------+
> | Tab | varchar(100) | | PRI | | |
> | Time | varchar(100) | | | | |
> +-------+--------------+------+-----+---------+-------+
> 2 rows in set (0.02 sec)
>
> mysql>
> mysql> explain select * from Upd where Tab="test";
> +-------+-------+---------------+---------+---------+-------+------+-------+
> | table | type | possible_keys | key | key_len | ref | rows | Extra |
> +-------+-------+---------------+---------+---------+-------+------+-------+
> | Upd | const | PRIMARY | PRIMARY | 100 | const | 1 | |
> +-------+-------+---------------+---------+---------+-------+------+-------+
> 1 row in set (0.02 sec)
>
> mysql>
>
---------------------------------------------------------------------
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 <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php