[ 
https://issues.apache.org/jira/browse/DERBY-789?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12840561#action_12840561
 ] 

Knut Anders Hatlen commented on DERBY-789:
------------------------------------------

I think the relevant section in SQL:2003 is 11.7 <unique constraint definition>.

It talks about both PRIMARY KEY and UNIQUE as uniqueness constraints. Further, 
syntax rule 3b says:

> The set of columns in the <unique column list> shall be distinct from the 
> unique columns of any other
> unique constraint descriptor that is included in the base table descriptor of 
> T.

So it seems allowing PRIMARY KEY and UNIQUE on the same set of columns would be 
a non-standard extension. It may still be useful, as it makes it easier to port 
applications to Derby, but we cannot expect any advice from the standard as to 
what's the correct behaviour for DROP CONSTRAINT on such constraints (I would 
argue, though, that the MySQL/PrimaryImpliesUnique.diff behaviour is more 
intuitive than the PostgreSQL behaviour.)

> Usability issue: "Constraints have the  same  set of columns"
> -------------------------------------------------------------
>
>                 Key: DERBY-789
>                 URL: https://issues.apache.org/jira/browse/DERBY-789
>             Project: Derby
>          Issue Type: Improvement
>          Components: SQL
>            Reporter: Øystein Grøvlen
>            Assignee: Bryan Pendleton
>            Priority: Minor
>         Attachments: PrimaryImpliesUnique.diff
>
>
> Legolas Woodland reported on derby-user that derby return errors like :
> org.apache.derby.client.am.SqlException:                    Constraints
> 'SQL060103004635123'  and 'SQL060103004635121'  have the  same  set of
> columns, which is not allowed.
> He got this when creating a table like this:
> create  table  WEBSITES (USERID  integer  not  null unique,  WEBSITEID
> bigint  not  null unique,  DOMAINNAME  varchar(255)  not null  unique,
> DESCRIPTION  varchar(255),  PPVIEW   double,  PPCLICK  double,  PPWEEK
> double, totalClick bigint,  totalView bigint, active smallint, primary
> key (WEBSITEID));
> Omitting the unique specifier made things work. 
> I think this is a usability issue.   At least, one should not present names 
> to the user, that has been generated internally.  Instead, it would be 
> helpful if the names of the columns involved was mentioned. I see two ways to 
> solve this:
> 1. Return error that says that  duplicate contraints on the following columns 
> are not allowed.
> 2. Allow this and use same index for both constraints.  (I guess dropping 
> constraints will be more complicated in this case since one will have to 
> check if other constraints are using the same index.)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to