Package DE_EPAGES::Object::API::Object::SQLStructure
Represents an SQL schema with tables, indexes, and constraints. Used to compare schemas and generate patch scripts for schema transformation.
Example |
my $SQLStruct = DE_EPAGES::Object::API::Object::SQLStructure->new; $SQLStruct->addTable('object'); $SQLStruct->addTableColumn('object', 'objectid', 'Not Null'); $SQLStruct->addTableColumn('object', 'guid', 'Not Null'); $SQLStruct->addPrimaryKey('object', 'pk_object', ['objectid'] ); $SQLStruct->addIndex('object', 'u_object_guid', { 'guid' => undef }, 'UNIQUE'); $SQLStruct->addForeignKey('product', 'object', 'fk_product_object', ['productid'], ['objectid']); foreach my $Table ( @{ $SQLStruct->getTables } ) { foreach my $Columns ( @{ $SQLStruct->getTableColumns( $Table ) } ) { ... } } |
Functions
- addForeignKey
- addIndex
- addPrimaryKey
- addTable
- addTableColumn
- countTableColumns
- existsPrimaryKey
- existsTable
- existsTableColumn
- existsTableColumnDefault
- existsTableForeignKey
- existsTableIndex
- existsTableIndexColumn
- getLockScheme
- getPrimaryKeyColumns
- getPrimaryKeyInfo
- getPrimaryKeyName
- getSQLType
- getTableColumnDataType
- getTableColumnDefault
- getTableColumnInfo
- getTableColumnNotNull
- getTableColumnPosition
- getTableColumns
- getTableForeignKeyColumnPairs
- getTableForeignKeyRefTable
- getTableForeignKeys
- getTableIndexClustered
- getTableIndexColumnSortOrder
- getTableIndexColumnSortOrderPairs
- getTableIndexColumns
- getTableIndexInfo
- getTableIndexUnique
- getTableIndices
- getTables
- new
- setLockScheme
addForeignKey
add foreign key of table to structure
Syntax |
$SQLStruct->addForeignKey($TableName, $ForeignKeyName, $ReferencedTableName, $aColumnNames, $aReferencedColumnNames); |
Input |
|
addIndex
add index of table to structure
Syntax |
$SQLStruct->addIndex($TableName, $IndexName, $hColumnSortOrderPairs, $Unique, $Clustered); |
Example |
$SQLStruct->addIndex('product', 'i_productname', {'productname' => 'DESC'}, {'Unique' => '0', 'Clustered' => 'CLUSTERED'}); |
Input |
|
Return |
|
addPrimaryKey
add primary key of table to structure
Syntax |
$SQLStruct->addPrimaryKey($TableName, $PrimaryKeyName, $aColumnNames, $SortOrder, $Clustered); |
Input |
|
Return |
|
addTable
added table with table name to structure
Syntax |
$SQLStruct->addTable($TableName); |
Input |
|
addTableColumn
added table column to structure
Syntax |
$SQLStruct->addTableColumn($TableName, $ColumnName, $DataType, $NotNull, $Position, $Default); |
Input |
|
countTableColumns
return number of table columns
Syntax |
$Count = $SQLStruct->countTableColumns($TableName); |
Input |
|
Return |
|
existsPrimaryKey
return true if primary key of table exists
Syntax |
$PrimaryKeyExists = $SQLStruct->existsPrimaryKey($TableName, $PrimaryKey); |
Input |
|
Return |
|
existsTable
return true if table exists in structure
Syntax |
$TableExists = $SQLStruct->existsTable($TableName); |
Input |
|
Return |
|
existsTableColumn
return true if table and column exists in structure
Syntax |
$TableColumnExists = $SQLStruct->existsTableColumn($TableName, $ColumnName); |
Input |
|
Return |
|
existsTableColumnDefault
return true if a value for default of table column in structure exists
Syntax |
$Exists = $SQLStruct->existsTableColumnDefault($TableName, $ColumnName); |
Input |
|
Return |
|
existsTableForeignKey
return true if foreign key of table exists in structure
Syntax |
$ForeignKeyExists = $SQLStruct->existsTableForeignKey($TableName, $ForeignKeyName); |
Input |
|
Return |
|
existsTableIndex
return true if foreign key of table exists in structure
Syntax |
$IndexExists = $SQLStruct->existsTableIndex($TableName, $IndexName); |
Input |
|
Return |
|
existsTableIndexColumn
return true if index is on column, check if column is registered in table index
Syntax |
$TableColumnHasIndex = $SQLStruct->existsTableIndexColumn($TableName, $IndexName, $TableColumnName); |
Input |
|
Return |
|
getLockScheme
get lock scheme value from table in SQL structure
Syntax |
$SQLStruct->getLockScheme($TableName); |
Input |
|
Return |
|
getPrimaryKeyColumns
return columns of primary key of table in structure
Syntax |
$aPrimaryKeyColumns = $SQLStruct->getPrimaryKeyColumns($TableName); |
Input |
|
Return |
|
getPrimaryKeyInfo
return infos of primary key
Syntax |
$hPrimaryKeyInfo = $SQLStruct->getPrimaryKeyInfo($TableName); |
Input |
|
Return |
|
getPrimaryKeyName
return primary of table in structure
Syntax |
$PrimaryKeyName = $SQLStruct->getPrimaryKeyName($TableName); |
Input |
|
Return |
|
getSQLType
returns the type of sql structure [sybase|mysql|SQL]
Syntax |
my $SQLType = $SQLStruct->getSQLType(); |
Return |
|
getTableColumnDataType
return data type of table column in structure
Syntax |
$DataType = $SQLStruct->getTableColumnDataType($TableName, $ColumnName); |
Input |
|
Return |
|
getTableColumnDefault
return default of table column in structure
Syntax |
$Default = $SQLStruct->getTableColumnDefault($TableName, $ColumnName); |
Input |
|
Return |
|
getTableColumnInfo
return infos of table column
Syntax |
$hTableColumnInfo = $SQLStruct->getTableColumnInfo($TableName, $ColumnName); |
Input |
|
Return |
|
getTableColumnNotNull
return true if table column in structure allow null values
Syntax |
$NotNull = $SQLStruct->getTableColumnNotNull($TableName, $ColumnName); |
Input |
|
Return |
|
getTableColumnPosition
return position of table column in structure
Syntax |
$Position = $SQLStruct->getTableColumnPosition($TableName, $ColumnName); |
Input |
|
Return |
|
getTableColumns
return column names of table sorted by position
Syntax |
$aTableColumnNames = $SQLStruct->existsTable($TableName); |
Input |
|
Return |
|
getTableForeignKeyColumnPairs
return hash with pairs of column names, <column,referenced column>
Syntax |
$hForeignKeyColumnPairs = $SQLStruct->getTableForeignKeyColumnPairs($TableName, $ForeignKeyName); |
Input |
|
Return |
|
getTableForeignKeyRefTable
return table name that is referenced by foreign key
Syntax |
$ForeignKeyRefTable = $SQLStruct->getTableForeignKeyRefTable($TableName, $ForeignKeyName); |
Input |
|
Return |
|
getTableForeignKeys
return names of all foreign keys from table in SQL structure
Syntax |
$aForeignKeys = $SQLStruct->getTableForeignKeys($TableName); |
Input |
|
Return |
|
getTableIndexClustered
return value that shows if index is clustered, return undef if table or index doesnt exists
Syntax |
$Clustered = $SQLStruct->getTableIndexClustered($TableName, $IndexName); |
Input |
|
Return |
|
getTableIndexColumnSortOrder
return sort order from index of column
Syntax |
$SortOrder = $SQLStruct->getTableIndexColumnSortOrder($TableName, $IndexName, $TableColumnName); |
Input |
|
Return |
|
getTableIndexColumnSortOrderPairs
return column sort order pairs of index
Syntax |
$TableIndexColumnSortOrderPairs = $SQLStruct->getTableIndexColumnSortOrderPairs($TableName, $IndexName); |
Input |
|
Return |
|
getTableIndexColumns
return all columns of index in structure
Syntax |
$aTableIndexColumns = $SQLStruct->getTableIndexColumns($TableName, $IndexName); |
Input |
|
Return |
|
getTableIndexInfo
return the whole information abaout an table index
Syntax |
$hTableIndexInfo = $SQLStruct->getTableIndexInfo($TableName, $IndexName); |
Input |
|
Return |
|
getTableIndexUnique
return true if index is unique, return undef if table or index doesnt exists
Syntax |
$IsUnique = $SQLStruct->getTableIndexUnique($TableName, $IndexName); |
Input |
|
Return |
|
getTableIndices
return names of all indices from table in SQL structure
Syntax |
$aTableIndices = $SQLStruct->getTableIndices($TableName); |
Input |
|
Return |
|
getTables
return names of all tables in SQL structure
Syntax |
$aTables = $SQLStruct->getTables(); |
Return |
|
new
constructor for semantic structure object.
Syntax |
$self->new($XMLType); |
Input |
|
setLockScheme
stet lock scheme value for table in SQL structure
Syntax |
$SQLStruct->setLockScheme($TableName,$LockSchemeValue); |
Input |
|
Return |
|