Using the DEFINE option of CHANGE RELATION, you can add a
globally defined field to a relation. You can also use a local
field name to refer to that global field. You can also define a
relation-specific constraint at the field level.
(B)0[mdefine-clause = qqwqqqqqqqqqqqqqqqwqqqk
mq> /* text */ qj x
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
mqqwq> global-field-name qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwqk
tq> local-field-name qq> [4mBASED[m ON q> global-field-name qj x
x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
x mwqqqqqqqqqqqqqqqqqwqwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x mqw> dtr-clause qwj mqqw> field-constraint-def qwqqqu
x mqqqqqq<qqqqqqqj mqqqqqqqqqq<qqqqqqqqqqqqqj x
x x
mq> local-field-name qq> [4mCOMPUTED[m [4mBY[m q> value-expr qk x
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x
mqqqwqqqqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqvq>
mqw> dtr-clause qwqj
mqqqqqq<qqqqqqqj
1 – Arguments
The action of CHANGE RELATION with the DEFINE-CLAUSE depends on
the define-clause, as follows:
o DEFINE global-field-name-includes an existing global field
definition in the relation
If you include only a name with the DEFINE option, Oracle Rdb
searches for a field with that name in the list of global
field definitions for the database. If such a field definition
exists, Oracle Rdb adds that field definition to the relation
definition. If no field has that name, Oracle Rdb returns an
error message.
o DEFINE local-field-name BASED ON global-field-name-includes
an existing field definition in the relation, but gives it a
local name
If you include the BASED ON qualifier, Oracle Rdb uses the
definition specified by the global-field-name syntax.
However, the name of the new field in the relation is the
one specified by the local-field-name syntax. This local name
does not become part of the global list of field names for the
database.
You can specify local DATATRIEVE support clauses for the field
specified with the local-field-name syntax. If you do, this
local specification overrides the DATATRIEVE clauses attached
to the global-field-name.
o DEFINE local-field-name COMPUTED BY expression-adds a new
virtual field
The COMPUTED BY qualifier causes Oracle Rdb to calculate the
field's value at run time, based on the specified expression.
You can specify local DATATRIEVE support clauses on any of
these fields. For more information on the DATATRIEVE clauses,
ask for HELP on Field_attr.
o If you include the DEFINE CONSTRAINT clause, Oracle Rdb defines
the specified relation-specific constraint.
2 – field-constraint-def
Using the field-constraint-def clause you can name or specify the
type of field-level constraints to be defined within a specific
relation definition.
(B)0[mfield-constraint-def =
qwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwqk
mq> [4mCONSTRAINT[m constraint-name IS qqj x
lqqqqqqqqqqqqqqqqqq<qqqqqqqqqqqqqqqqqqqj
mwq> [4mNOT[m [4mMISSING[m qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwqk
tq> [4mUNIQUE[m qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu x
tq> [4mPRIMARY[m [4mKEY[m qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu x
mw> [4mREFERENCES[m referenced-relation-name qwqqqqqqqqqqqqqqqqqqqqqqqqwu x
x m> referenced-field-name jx x
x x x
mq> [4mUSING[m rse [4mREQUIRE[m conditional-expr qqqqqqqqqqqq>qqqqqqqqqqqqqqj x
x
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq<qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
mwqqqqqqqqqqqqqqqqqqqqqqqqqqqwq>
mqq> [4mCHECK[m ON qwqq> [4mCOMMIT[m qu
mqq> [4mUPDATE[m qj
2.1 – Arguments
Constraint-name must be unique within the database. The
constraint name can be referred to in other statements such as
DEFINE RELATION, SHOW CONSTRAINT, and START_TRANSACTION.
The phrase 'CONSTRAINT constraint-name is' is optional. If you
specify the keyword CONSTRAINT, you must also provide a name for
the constraint.
A field constraint definition differs from a relation constraint
definition in that you cannot repeat referenced field names. See
the "relation-constraint-def" help subtopic of CHANGE_RELATION
for more information.