We have a table "ticker" with five primary keys.  Sometimes we
do an UPDATE but don't change any values.  This produces the
error "ERROR 1062: Duplicate entry".  The manual indicates that
a no-change UPDATE is allowed.  (ref page 583)  Is this a bug,
or a documentation error?

    There are no auto-increment fields involved.

    Server 3.23.28-gamma, running on Win2K, SP1.

                                        John Nagle
                                        Downside.com

mysql> describe ticker;
+------------------------+-------------------------------------------+------+-----+------------+-------+---------------------------------+
| Field                  | Type                                      |
Null | Key | Default    | Extra | Privileges                      |
+------------------------+-------------------------------------------+------+-----+------------+-------+---------------------------------+
| symbol                 | varchar(5)                               
|      | PRI |            |       | select,insert,update,references |
| exchange_section       | char(3)                                  
|      | PRI |            |       | select,insert,update,references |
| exchange               | varchar(6)                               
|      | PRI |            |       | select,insert,update,references |
| cik                    | bigint(10)                               
|      | MUL | 0          |       | select,insert,update,references |
| company_conformed_name | varchar(120)                             
|      | MUL |            |       | select,insert,update,references |
| security_name          | varchar(120)                             
|      | PRI |            |       | select,insert,update,references |
| valid_from             | date                                     
|      | PRI | 0000-00-00 |       | select,insert,update,references |
| valid_to               | date                                     
|      |     | 0000-00-00 |       | select,insert,update,references |
| data_source            | varchar(6)                               
|      |     |            |       | select,insert,update,references |
| cik_confidence         | smallint(1)                              
|      |     | 9          |       | select,insert,update,references |
| security_class         | enum('normal','bank','foreign','unknown') |
YES  |     | unknown    |       | select,insert,update,references |
| errors                 | text                                      |
YES  |     | NULL       |       | select,insert,update,references |
+------------------------+-------------------------------------------+------+-----+------------+-------+---------------------------------+
12 rows in set (0.00 sec)

mysql> SELECT * FROM ticker WHERE symbol='ACSEF'
    -> AND exchange='NASDAQ'
    -> AND exchange_section='SCM'
    -> AND security_name='ACS-Tech80 Limited - Common Stock'
    -> AND valid_from='2001-05-24';
+--------+------------------+----------+-----+------------------------+-----------------------------------+------------+------------+-------------+----------------+----------------+-----------------------------------------+
| symbol | exchange_section | exchange | cik | company_conformed_name |
security_name                     | valid_from | valid_to   |
data_source | cik_confidence | security_class |
errors                                  |
+--------+------------------+----------+-----+------------------------+-----------------------------------+------------+------------+-------------+----------------+----------------+-----------------------------------------+
| ACSEF  | SCM              | NASDAQ   |   0 |                        |
ACS-Tech80 Limited - Common Stock | 2001-05-24 | 2001-07-11 |
EDGAR       |              7 | unknown        | Company name "ACS TECH80
LTD" not found |
+--------+------------------+----------+-----+------------------------+-----------------------------------+------------+------------+-------------+----------------+----------------+-----------------------------------------+
1 row in set (0.00 sec)

mysql> UPDATE ticker SET
symbol='ACSEF',exchange_section='SCM',exchange='NASDAQ',
    -> cik='0',company_conformed_name='',security_name='ACS-Tech80
Limited - Common Stock',
    ->
security_class='unknown',valid_from='2001-05-24',valid_to='2001-07-11',
    -> data_source='EDGAR',errors='Company name "ACS TECH80 LTD" not
found',cik_confidence='7'
    -> WHERE symbol='ACSEF'
    -> AND exchange='NASDAQ'
    -> AND exchange_section='SCM'
    -> AND security_name='ACS-Tech80 Limited - Common Stock'
    -> AND valid_from='2001-05-24';
ERROR 1062: Duplicate entry 'ACSEF-NASDAQ-SCM-ACS-Tech80 Limited -
Common Stock-2001-05-24' for key 4

---------------------------------------------------------------------
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

Reply via email to