Hi!

I will change InnoDB so that it allows several NULL values in secondary
indexes even if that index would have been declared UNIQUE. Oracle has a
similar convention.

In the case of foreign keys, I advise against using NULL values, because in
SQL NULL really means 'an unknown value'.

Actually, since NULL means an 'unknown value' it would be logical that the
SQL standard would ban the use of NULLs in any UNIQUE index. Currently it
has only been banned in a primary key.

Regards,

Heikki
Innobase Oy
---
See http://www.innodb.com for the latest news about InnoDB
Order commercial MySQL/InnoDB support at https://order.mysql.com/

>I have found a "problem" with UNIQUE in InnoDB.
>
>Example:
>
>mysql> CREATE TABLE b (
>    ->   idB int(11) NOT NULL auto increment,
>    ->   valor int(11) default NULL,
>    ->   PRIMARY KEY  (idB),
>    ->   UNIQUE KEY valor (valor)
>    -> ) TYPE=MyISAM;
>Query OK, 0 rows affected (0.00 sec)
>
>mysql> INSERT INTO b (idB, valor) VALUES (1,1),(2,2),(3,NULL),(4,NULL);
>Query OK, 4 rows affected (0.01 sec)
>Registros: 4  Duplicados: 0  Peligros: 0
>
>mysql> select * from b;
>+-----+-------+
>| idB | valor |
>+-----+-------+
>|   1 |     1 |
>|   2 |     2 |
>|   3 |  NULL |
>|   4 |  NULL |
>+-----+-------+
>4 rows in set (0.00 sec)
>
>mysql> alter table b type=InnoDB;
>ERROR 1062: Entrada duplicada 'NULL' para la clave 2
>
>
>Why? I know that NULL != NULL, then behaviour in MyISAM is correct but
>in InnoDB in not.
>
>With "foreign key constraints", I have found the same problem: I can't
>insert a NULL in a column that "references" other.
>
>Thanks,
>José Ceferino Ortega
>
>
>---------------------------------------------------------------------------
-----
>



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