Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
Normal
Description
The Reference Manual section titled "constraint-Name" incorrectly states that you can't schema-qualify the names of constraints. This is not true. What is true is that the schema name, if supplied, must be the same as the table's schema name. This behavior of Derby is correct and conforms to the SQL Standard, part 2, section 11.6 (table constraint definition), syntax rule 2. The following script shows Derby's behavior:
connect 'jdbc:derby:memory:db;create=true';
create schema s1;
– fails
create table t1
(
a int,
constraint s1.c1 check ( a > 0 )
);
– succeeds
create table t2
(
a int,
constraint c2 check ( a > 0 )
);
– succeeds
create table t3
(
a int,
constraint app.c3 check ( a > 0 )
);
– fails because the name conflicts with an existing constraint name
create table t4
(
a int,
constraint c3 check ( a > 0 )
);