Class ForeignKeyConstraintDescriptor
- java.lang.Object
-
- org.apache.derby.iapi.sql.dictionary.TupleDescriptor
-
- org.apache.derby.iapi.sql.dictionary.UniqueTupleDescriptor
-
- org.apache.derby.iapi.sql.dictionary.ConstraintDescriptor
-
- org.apache.derby.iapi.sql.dictionary.KeyConstraintDescriptor
-
- org.apache.derby.iapi.sql.dictionary.ForeignKeyConstraintDescriptor
-
- All Implemented Interfaces:
Dependable,Dependent,Provider
public class ForeignKeyConstraintDescriptor extends KeyConstraintDescriptor
A foreign key.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) intraDeleteRule(package private) intraUpdateRule(package private) ReferencedKeyConstraintDescriptorreferencedConstraintDescriptorinterface to this descriptor public ReferencedKeyConstraintDescriptor getReferencedConstraint() throws StandardException; public UUID getReferencedConstraintId() throws StandardException; public boolean isSelfReferencingFK() throws StandardException;(package private) UUIDreferencedConstraintId-
Fields inherited from class org.apache.derby.iapi.sql.dictionary.KeyConstraintDescriptor
indexId
-
Fields inherited from class org.apache.derby.iapi.sql.dictionary.ConstraintDescriptor
ALL, constraintId, constraintName, DISABLED, ENABLED, SYSCONSTRAINTS_STATE_FIELD, table
-
Fields inherited from interface org.apache.derby.catalog.Dependable
ACTIVATION, ALIAS, COLUMNS_IN_TABLE, COLUMNS_PERMISSION, CONGLOMERATE, CONSTRAINT, DEFAULT, FILE, HEAP, INDEX, PERM, PREPARED_STATEMENT, ROLE_GRANT, ROUTINE_PERMISSION, SCHEMA, SEQUENCE, STORED_PREPARED_STATEMENT, TABLE, TABLE_PERMISSION, TRIGGER, VIEW
-
-
Constructor Summary
Constructors Modifier Constructor Description (package private)ForeignKeyConstraintDescriptor(DataDictionary dataDictionary, TableDescriptor table, java.lang.String constraintName, boolean deferrable, boolean initiallyDeferred, int[] fkColumns, UUID constraintId, UUID indexId, SchemaDescriptor schemaDesc, UUID referencedConstraintId, boolean enforced, int raDeleteRule, int raUpdateRule)Constructor for a ForeignKeyConstraintDescriptorprotectedForeignKeyConstraintDescriptor(DataDictionary dataDictionary, TableDescriptor table, java.lang.String constraintName, boolean deferrable, boolean initiallyDeferred, int[] fkColumns, UUID constraintId, UUID indexId, SchemaDescriptor schemaDesc, ReferencedKeyConstraintDescriptor referencedConstraintDescriptor, boolean enforced, int raDeleteRule, int raUpdateRule)Constructor for a ForeignKeyConstraintDescriptor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetConstraintType()Gets an identifier telling what type of descriptor it is (UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK).intgetRaDeleteRule()Gets a referential action rule on a DELETEintgetRaUpdateRule()Gets a referential action rule on a UPDATEReferencedKeyConstraintDescriptorgetReferencedConstraint()Get the constraint that this FK references.UUIDgetReferencedConstraintId()Get the constraint id for the constraint that this FK references.booleanisSelfReferencingFK()Am I a self-referencing FK?booleanneedsToFire(int stmtType, int[] modifiedCols)Does this constraint need to fire on this type of DML?-
Methods inherited from class org.apache.derby.iapi.sql.dictionary.KeyConstraintDescriptor
getConglomerateId, getIndexConglomerateDescriptor, getIndexId, getIndexUUIDString, hasBackingIndex, toString
-
Methods inherited from class org.apache.derby.iapi.sql.dictionary.ConstraintDescriptor
areColumnsComparable, columnIntersects, deferrable, doColumnsIntersect, drop, enforced, getClassType, getColumnDescriptors, getConstraintName, getConstraintText, getDependableFinder, getDescriptorName, getDescriptorType, getKeyColumns, getObjectID, getObjectName, getReferenceCount, getReferencedColumns, getSchemaDescriptor, getTableDescriptor, getTableId, getUUID, initiallyDeferred, isReferenced, isValid, makeInvalid, prepareToInvalidate, setDeferrable, setEnforced, setInitiallyDeferred
-
Methods inherited from class org.apache.derby.iapi.sql.dictionary.TupleDescriptor
getColumnDependableFinder, getDataDictionary, getDependableFinder, isPersistent, setDataDictionary
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.derby.catalog.Dependable
isPersistent
-
-
-
-
Field Detail
-
referencedConstraintDescriptor
ReferencedKeyConstraintDescriptor referencedConstraintDescriptor
interface to this descriptor- public ReferencedKeyConstraintDescriptor getReferencedConstraint() throws StandardException;
- public UUID getReferencedConstraintId() throws StandardException;
- public boolean isSelfReferencingFK() throws StandardException;
-
referencedConstraintId
UUID referencedConstraintId
-
raDeleteRule
int raDeleteRule
-
raUpdateRule
int raUpdateRule
-
-
Constructor Detail
-
ForeignKeyConstraintDescriptor
protected ForeignKeyConstraintDescriptor(DataDictionary dataDictionary, TableDescriptor table, java.lang.String constraintName, boolean deferrable, boolean initiallyDeferred, int[] fkColumns, UUID constraintId, UUID indexId, SchemaDescriptor schemaDesc, ReferencedKeyConstraintDescriptor referencedConstraintDescriptor, boolean enforced, int raDeleteRule, int raUpdateRule)
Constructor for a ForeignKeyConstraintDescriptor- Parameters:
dataDictionary- The data dictionary that this descriptor lives intable- The descriptor of the table the constraint is onconstraintName- The name of the constraint.deferrable- If the constraint can be deferred.initiallyDeferred- If the constraint starts life deferred.fkColumns- columns in the foreign keyconstraintId- UUID of constraintindexId- The UUID for the backing indexschemaDesc- The SchemaDescriptor for the constraintreferencedConstraintDescriptor- is referenced constraint descriptorenforced- is the constraint enforced?raDeleteRule- TheON DELETEaction ruleraUpdateRule- TheON UPDATEaction rule
-
ForeignKeyConstraintDescriptor
ForeignKeyConstraintDescriptor(DataDictionary dataDictionary, TableDescriptor table, java.lang.String constraintName, boolean deferrable, boolean initiallyDeferred, int[] fkColumns, UUID constraintId, UUID indexId, SchemaDescriptor schemaDesc, UUID referencedConstraintId, boolean enforced, int raDeleteRule, int raUpdateRule)
Constructor for a ForeignKeyConstraintDescriptor- Parameters:
dataDictionary- The data dictionary that this descriptor lives intable- The descriptor of the table the constraint is onconstraintName- The name of the constraint.deferrable- If the constraint can be deferred.initiallyDeferred- If the constraint starts life deferred.fkColumns- columns in the foreign keyconstraintId- UUID of constraintindexId- The UUID for the backing indexschemaDesc- The SchemaDescriptor for the constraintreferencedConstraintId- is referenced constraint idenforced-trueif this constraint is enforcedraDeleteRule- TheON DELETEaction ruleraUpdateRule- TheON UPDATEaction rule
-
-
Method Detail
-
getReferencedConstraint
public ReferencedKeyConstraintDescriptor getReferencedConstraint() throws StandardException
Get the constraint that this FK references. Will return either a primary key or a unique key constraint.- Returns:
- the constraint
- Throws:
StandardException- on error
-
getReferencedConstraintId
public UUID getReferencedConstraintId() throws StandardException
Get the constraint id for the constraint that this FK references. Will return either a primary key or a unique key constriant.- Returns:
- the constraint id
- Throws:
StandardException- on error
-
getConstraintType
public int getConstraintType()
Gets an identifier telling what type of descriptor it is (UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK).- Specified by:
getConstraintTypein classConstraintDescriptor- Returns:
- An identifier telling what type of descriptor it is (UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK).
-
needsToFire
public boolean needsToFire(int stmtType, int[] modifiedCols)Does this constraint need to fire on this type of DML? True if insert or update and columns intersect- Specified by:
needsToFirein classConstraintDescriptor- Parameters:
stmtType- the type of DML (StatementType.INSERT|StatementType.UPDATE|StatementType.DELETE)modifiedCols- the columns modified, or null for all- Returns:
- true/false
-
isSelfReferencingFK
public boolean isSelfReferencingFK() throws StandardExceptionAm I a self-referencing FK? True if my referenced constraint is on the same table as me.- Returns:
- true/false
- Throws:
StandardException- on error
-
getRaDeleteRule
public int getRaDeleteRule()
Gets a referential action rule on a DELETE- Returns:
- referential rule defined by the user during foreign key creattion for a delete (like CASCDE , RESTRICT ..etc)
-
getRaUpdateRule
public int getRaUpdateRule()
Gets a referential action rule on a UPDATE- Returns:
- referential rule defined by the user during foreign key creattion for an UPDATE (like CASCDE , RESTRICT ..etc)
-
-