Dan Karp wrote:
Just to make sure, this foreign key declaration
CONSTRAINT fk_mail_item_parent_id FOREIGN KEY (mailbox_id, parent_id)
REFERENCES ${DATABASE_NAME}.mail_item(mailbox_id, id),
implicitly creates an index on (mailbox_id, parent_id), right?
Yes, that is correct. Copied following from the CREATE INDEX page in
Derby's documentation:
Unique, primary key , and foreign key constraints generate indexes
that enforce or "back" the constraint (and are thus sometimes called
backing indexes ).
Is there any way to explicitly assign a name to this backing index? In my case, I want
to force the optimizer to choose the backing index using "-- DERBY-PROPERTIES
index=".
The query at:
http://wiki.apache.org/db-derby/ListKeyIndexes
will list the name of the backing index so you can test whether the
constraint name is carried over to the backing index. Otherwise you can
specify the name returned by the query in the clause.