Package org.h2.constraint
Class ConstraintReferential
java.lang.Object
org.h2.engine.DbObject
org.h2.schema.SchemaObject
org.h2.constraint.Constraint
org.h2.constraint.ConstraintReferential
- All Implemented Interfaces:
Comparable<Constraint>,HasSQL
A referential constraint.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.h2.constraint.Constraint
Constraint.Type -
Field Summary
Fields inherited from class org.h2.constraint.Constraint
tableFields inherited from class org.h2.engine.DbObject
AGGREGATE, comment, COMMENT, CONSTANT, CONSTRAINT, database, DOMAIN, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, SYNONYM, TABLE_OR_VIEW, trace, TRIGGER, USERFields inherited from interface org.h2.util.HasSQL
ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcheckExistingData(SessionLocal session) Check the existing data.voidcheckRow(SessionLocal session, Table t, Row oldRow, Row newRow) Check if this row fulfils the constraint.The constraint type nameConstruct the CREATE ...getCreateSQLForCopy(Table forTable, String quotedName) Create the SQL statement of this object so a copy of the table can be made.getCreateSQLForCopy(Table forTable, Table forRefTable, String quotedName, boolean internalIndex) Create the SQL statement of this object so a copy of the table can be made.Get the SQL statement to create this constraint.getIndex()Get the index of this constraint in the source table, or null if no index is used.getReferencedColumns(Table table) Get all referenced columns.Returns the referenced unique constraint, or null.booleanisBefore()Check if this constraint needs to be checked before updating the data.voidrebuild()This method is called after a related table has changed (the table was renamed, or columns have been renamed).voidremoveChildrenAndResources(SessionLocal session) Delete all dependent children objects and resources of this object.voidsetColumns(IndexColumn[] cols) voidsetDeleteAction(ConstraintActionType action) Set the action to apply (restrict, cascade,...) on a delete.voidSet the index to use for this constraint.voidsetIndexOwner(Index index) This index is now the owner of the specified index.voidsetRefColumns(IndexColumn[] refCols) voidsetRefConstraint(ConstraintUnique refConstraint) Set the unique constraint of the referenced table to use for this constraint.voidsetRefTable(Table refTable) voidsetUpdateAction(ConstraintActionType action) Set the action to apply (restrict, cascade,...) on an update.voidUpdate the constraint SQL when a referenced column is renamed.booleanCheck if this constraint needs the specified index.Methods inherited from class org.h2.constraint.Constraint
compareTo, getExpression, getTable, getType, isEverythingMethods inherited from class org.h2.schema.SchemaObject
getSchema, getSQL, getSQLMethods inherited from class org.h2.engine.DbObject
checkRename, equals, getChildren, getComment, getCreateSQLForMeta, getDatabase, getDropSQL, getId, getModificationId, getName, hashCode, invalidate, isTemporary, isValid, rename, setComment, setModified, setObjectName, setTemporary, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.h2.util.HasSQL
getTraceSQL
-
Constructor Details
-
ConstraintReferential
-
-
Method Details
-
getConstraintType
Description copied from class:ConstraintThe constraint type name- Specified by:
getConstraintTypein classConstraint- Returns:
- the name
-
getCreateSQLForCopy
Create the SQL statement of this object so a copy of the table can be made.- Overrides:
getCreateSQLForCopyin classDbObject- Parameters:
forTable- the table to create the object forquotedName- the name of this object (quoted if necessary)- Returns:
- the SQL statement
-
getCreateSQLForCopy
public String getCreateSQLForCopy(Table forTable, Table forRefTable, String quotedName, boolean internalIndex) Create the SQL statement of this object so a copy of the table can be made.- Parameters:
forTable- the table to create the object forforRefTable- the referenced tablequotedName- the name of this object (quoted if necessary)internalIndex- add the index name to the statement- Returns:
- the SQL statement
-
getCreateSQLWithoutIndexes
Description copied from class:ConstraintGet the SQL statement to create this constraint.- Specified by:
getCreateSQLWithoutIndexesin classConstraint- Returns:
- the SQL statement
-
getCreateSQL
Description copied from class:DbObjectConstruct the CREATE ... SQL statement for this object.- Specified by:
getCreateSQLin classDbObject- Returns:
- the SQL statement
-
setColumns
-
getColumns
-
getReferencedColumns
Description copied from class:ConstraintGet all referenced columns.- Specified by:
getReferencedColumnsin classConstraint- Parameters:
table- the table- Returns:
- the set of referenced columns
-
setRefColumns
-
getRefColumns
-
setRefTable
-
setIndex
Set the index to use for this constraint.- Parameters:
index- the indexisOwner- true if the index is generated by the system and belongs to this constraint
-
setRefConstraint
Set the unique constraint of the referenced table to use for this constraint.- Parameters:
refConstraint- the unique constraint
-
removeChildrenAndResources
Description copied from class:DbObjectDelete all dependent children objects and resources of this object.- Specified by:
removeChildrenAndResourcesin classDbObject- Parameters:
session- the session
-
checkRow
Description copied from class:ConstraintCheck if this row fulfils the constraint. This method throws an exception if not.- Specified by:
checkRowin classConstraint- Parameters:
session- the sessiont- the tableoldRow- the old rownewRow- the new row
-
getDeleteAction
-
setDeleteAction
Set the action to apply (restrict, cascade,...) on a delete.- Parameters:
action- the action
-
updateOnTableColumnRename
public void updateOnTableColumnRename()Update the constraint SQL when a referenced column is renamed. -
getUpdateAction
-
setUpdateAction
Set the action to apply (restrict, cascade,...) on an update.- Parameters:
action- the action
-
rebuild
public void rebuild()Description copied from class:ConstraintThis method is called after a related table has changed (the table was renamed, or columns have been renamed).- Specified by:
rebuildin classConstraint
-
getRefTable
- Overrides:
getRefTablein classConstraint
-
usesIndex
Description copied from class:ConstraintCheck if this constraint needs the specified index.- Specified by:
usesIndexin classConstraint- Parameters:
idx- the index- Returns:
- true if the index is used
-
setIndexOwner
Description copied from class:ConstraintThis index is now the owner of the specified index.- Specified by:
setIndexOwnerin classConstraint- Parameters:
index- the index
-
isBefore
public boolean isBefore()Description copied from class:ConstraintCheck if this constraint needs to be checked before updating the data.- Specified by:
isBeforein classConstraint- Returns:
- true if it must be checked before updating
-
checkExistingData
Description copied from class:ConstraintCheck the existing data. This method is called if the constraint is added after data has been inserted into the table.- Specified by:
checkExistingDatain classConstraint- Parameters:
session- the session
-
getIndex
Description copied from class:ConstraintGet the index of this constraint in the source table, or null if no index is used.- Overrides:
getIndexin classConstraint- Returns:
- the index
-
getReferencedConstraint
Description copied from class:ConstraintReturns the referenced unique constraint, or null.- Overrides:
getReferencedConstraintin classConstraint- Returns:
- the referenced unique constraint, or null
-