> > create table a (
> > b int not null,
> > c int null
> > primary_key(b,c)
> > );
> > With values:
> > 1 null
> > 1 null
> > Logically these are unique records under the standard proviso that
> > null != null. Yet how could I uniquely identify the first row to delete
> > that row?
> First of all NULL is neither equal nor not-equal to NULL. The outcome of
> comparing NULL to NULL is unknown AKA 'NULL' ;-)
> Secondly, the previous line is only true for comparing values within
> queries. If it comes to UNIQUE indexes than most of the time NULL != NULL,
> but in the case of BDB tables NULL = NULL (only a single NULL entry can be
> present in the UNIQUE index of a BDB table).
But an unique INDEX is not a Primary Key constraint. So actually that
has nothing to do with it :-)
> While BDB tables are not the role model for other table types I used this
> example to indicate that MySQL is capable of handling NULLs this way.
> Thirdly, if NULL=NULL for such an index then the secod row could not have
> been inserted in the first place.
Database Workbench - developer tool for InterBase, Firebird, MySQL & MS SQL