CLONE -Ability to specify names of constraints (PK, Check, Unique)

Description

Under Oracle, and possibly other DBs, if you dont specify a constraint name for primary keys, check and unique constraints Oracle creates a system default name which is no help to anyone hitting the DB if the violate the constraint.

It would be nice to be able to generate SQL along the lines of:

CREATE TABLE foo
(
id number(19,0) not null,
a integer not null,
b integer not null,
CONSTRAINT PK_foo PRIMARY KEY (ID),
CONSTRAINT CK_A_NONZERO CHECK ( a > 0 ),
CONSTRAINT CK_B_NONZERO CHECK ( b > 0 )
);

where the PK name for the <id> element can be set by attribute (similar to how the foreign-key name can be set).

For check constraints, maybe an additional attribute check-name=""
could be added

Ive implemented the PK name for <id> elements, but now notice there are additional PKs created by Hibernate. The check constraint seems a little more involved, but I was thinking about derriving a new class, CheckConstraint from Constraint, and having the value from the existing check attribute stored, and also a constraintName.

The individual dialects could then have a new getCreateConstraintSQL method to switch this out for the different DBs.

Nick

Environment

None

Assignee

Steve Ebersole

Reporter

Steve Ebersole

Labels

None

Feedback Requested

None

Feedback Requested By

None

backPortable

None

Suitable for new contributors

None

Pull Request

None

backportDecision

None

backportReEvaluate

None

Components

Affects versions

Priority

Minor
Configure