Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.ddlutils.platform.mysql
Class MySqlBuilder

    java.lang.Object
      org.apache.ddlutils.platform.SqlBuilder
          org.apache.ddlutils.platform.mysql.MySqlBuilder

    public class MySqlBuilder

extends SqlBuilder

The SQL Builder for MySQL.

Version:
  $Revision: 518498 $

Field Summary

Fields inherited from class org.apache.ddlutils.platform.SqlBuilder
`_log, SIZE_PLACEHOLDER`

Constructor Summary
`MySqlBuilder(Platform platform)` Creates a new builder instance.

Method Summary
`void` | `dropTable(Table table)` Outputs the DDL to drop the table.
`String` | `getSelectLastIdentityValues(Table table)` Generates the SQL for querying the id that was created in the last insertion operation. Normally mysql will return the LAST_INSERT_ID as the column name for the inserted id.
`protected void` | `processChange(Database currentModel, Database desiredModel, AddColumnChange change)` Processes the addition of a column to a table.
`protected void` | `processChange(Database currentModel, Database desiredModel, PrimaryKeyChange change)` Processes the change of the primary key of a table.
`protected void` | `processChange(Database currentModel, Database desiredModel, RemoveColumnChange change)` Processes the removal of a column from a table.
`protected void` | `processChange(Database currentModel, Database desiredModel, RemovePrimaryKeyChange change)` Processes the removal of a primary key from a table.
`protected void` | `processColumnChange(Table sourceTable, Table targetTable, Column sourceColumn, Column targetColumn)` Processes a change to a column.
`protected void` | `processTableStructureChanges(Database currentModel, Database desiredModel, Table sourceTable, Table targetTable, Map parameters, List changes)` Allows database-specific implementations to handle changes in a database specific manner.
`protected boolean` | `shouldGeneratePrimaryKeys(Column[] primaryKeyColumns)` Determines whether we should generate a primary key constraint for the given primary key columns.
`protected void` | `writeColumnAutoIncrementStmt(Table table, Column column)` Prints that the column is an auto increment column.
`protected void` | `writeExternalForeignKeyDropStmt(Table table, ForeignKey foreignKey)` Generates the statement to drop a foreignkey constraint from the database using an alter table statement.
`protected void` | `writeTableCreationStmtEnding(Table table, Map parameters)` Writes the end of the table creation statement.

Methods inherited from class org.apache.ddlutils.platform.SqlBuilder
`addEscapedCharSequence, alterDatabase, applyForSelectedChanges, areEqual, columnsDiffer, createExternalForeignKeys, createExternalForeignKeys, createTable, createTable, createTables, createTables, createTables, createTemporaryTable, createUniqueIdentifier, dropExternalForeignKeys, dropTable, dropTables, dropTemporaryTable, escapeStringValue, findCorrespondingForeignKey, getBareNativeType, getColumnName, getConstraintName, getDefaultValueHelper, getDeleteSql, getDelimitedIdentifier, getForeignKeyName, getIndent, getIndexName, getInsertSql, getMaxColumnNameLength, getMaxConstraintNameLength, getMaxForeignKeyNameLength, getMaxTableNameLength, getNativeDefaultValue, getNativeType, getPlatform, getPlatformInfo, getRealTargetTableFor, getSqlType, getTableName, getTemporaryTableFor, getUpdateSql, getValueAsString, getValueDateFormat, getValueLocale, getValueNumberFormat, getValueTimeFormat, getWriter, isValidDefaultValue, print, printComment, printDefaultValue, printEndOfStatement, printIdentifier, printIndent, println, println, printlnIdentifier, printStartOfEmbeddedStatement, processChange, processChange, processChange, processChange, processChange, processChange, processChange, processChange, processChanges, processTableStructureChanges, processTableStructureChanges, setIndent, setValueDateFormat, setValueLocale, setValueNumberFormat, setValueTimeFormat, setWriter, shortenName, writeCastExpression, writeColumn, writeColumnDefaultValue, writeColumnDefaultValueStmt, writeColumnNotNullableStmt, writeColumnNullableStmt, writeColumns, writeCopyDataStatement, writeEmbeddedForeignKeysStmt, writeEmbeddedIndexCreateStmt, writeEmbeddedIndicesStmt, writeEmbeddedPrimaryKeysStmt, writeExternalForeignKeyCreateStmt, writeExternalIndexCreateStmt, writeExternalIndexDropStmt, writeExternalIndicesCreateStmt, writeExternalPrimaryKeysCreateStmt, writeForeignReferences, writeLocalReferences, writePrimaryKeyStmt, writeTableAlterStmt, writeTableComment, writeTableCreationStmt`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### MySqlBuilder

    public MySqlBuilder(Platform platform)

  Creates a new builder instance.

  Parameters:
    `platform` - The plaftform this builder belongs to

Method Detail

### dropTable

    public void dropTable(Table table)
                   throws IOException

  Outputs the DDL to drop the table. Note that this method does not drop foreign keys to this table. Use `SqlBuilder.dropTable(Database, Table)` if you want that.

  Overrides:
    `dropTable` in class `SqlBuilder`
  Parameters:
    `table` - The table to drop
  Throws:
    `IOException`

### writeColumnAutoIncrementStmt

    protected void writeColumnAutoIncrementStmt(Table table,
                                                Column column)
                                         throws IOException

  Prints that the column is an auto increment column.

  Overrides:
    `writeColumnAutoIncrementStmt` in class `SqlBuilder`
  Parameters:
    `table` - The table
    `column` - The column
  Throws:
    `IOException`

### shouldGeneratePrimaryKeys

    protected boolean shouldGeneratePrimaryKeys(Column[] primaryKeyColumns)

  Determines whether we should generate a primary key constraint for the given primary key columns.

  Overrides:
    `shouldGeneratePrimaryKeys` in class `SqlBuilder`
  Parameters:
    `primaryKeyColumns` - The pk columns
  Returns:
    `true` if a pk statement should be generated for the columns

### getSelectLastIdentityValues

    public String getSelectLastIdentityValues(Table table)

  Generates the SQL for querying the id that was created in the last insertion operation. This is obviously only useful for pk fields that are auto-incrementing. A database that does not support this, will return `null`. Normally mysql will return the LAST_INSERT_ID as the column name for the inserted id. Since ddlutils expects the real column name of the field that is autoincrementing, the column has an alias of that column name.

  Overrides:
    `getSelectLastIdentityValues` in class `SqlBuilder`
  Parameters:
    `table` - The table
  Returns:
    The sql, or `null` if the database does not support this

### writeTableCreationStmtEnding

    protected void writeTableCreationStmtEnding(Table table,
                                                Map parameters)
                                         throws IOException

  Writes the end of the table creation statement. Per default, only the end of the statement is written, but this can be changed in subclasses.

  Overrides:
    `writeTableCreationStmtEnding` in class `SqlBuilder`
  Parameters:
    `table` - The table
    `parameters` - Additional platform-specific parameters for the table creation
  Throws:
    `IOException`

### writeExternalForeignKeyDropStmt

    protected void writeExternalForeignKeyDropStmt(Table table,
                                                   ForeignKey foreignKey)
                                            throws IOException

  Generates the statement to drop a foreignkey constraint from the database using an alter table statement.

  Overrides:
    `writeExternalForeignKeyDropStmt` in class `SqlBuilder`
  Parameters:
    `table` - The table
    `foreignKey` - The foreign key
  Throws:
    `IOException`

### processTableStructureChanges

    protected void processTableStructureChanges(Database currentModel,
                                                Database desiredModel,
                                                Table sourceTable,
                                                Table targetTable,
                                                Map parameters,
                                                List changes)
                                         throws IOException

  Allows database-specific implementations to handle changes in a database specific manner. Any handled change should be applied to the given current model (which is a copy of the real original model) and be removed from the list of changes.
  In the default implementation, all `AddPrimaryKeyChange` changes are applied via an `ALTER TABLE ADD CONSTRAINT` statement.

  Overrides:
    `processTableStructureChanges` in class `SqlBuilder`
  Parameters:
    `currentModel` - The current database schema
    `desiredModel` - The desired database schema
    `sourceTable` - The original table
    `targetTable` - The desired table
    `parameters` - The creation parameters for the table
    `changes` - The change objects for the target table
  Throws:
    `IOException`

### processChange

    protected void processChange(Database currentModel,
                                 Database desiredModel,
                                 AddColumnChange change)
                          throws IOException

  Processes the addition of a column to a table.

  Parameters:
    `currentModel` - The current database schema
    `desiredModel` - The desired database schema
    `change` - The change object
  Throws:
    `IOException`

### processChange

    protected void processChange(Database currentModel,
                                 Database desiredModel,
                                 RemoveColumnChange change)
                          throws IOException

  Processes the removal of a column from a table.

  Parameters:
    `currentModel` - The current database schema
    `desiredModel` - The desired database schema
    `change` - The change object
  Throws:
    `IOException`

### processChange

    protected void processChange(Database currentModel,
                                 Database desiredModel,
                                 RemovePrimaryKeyChange change)
                          throws IOException

  Processes the removal of a primary key from a table.

  Parameters:
    `currentModel` - The current database schema
    `desiredModel` - The desired database schema
    `change` - The change object
  Throws:
    `IOException`

### processChange

    protected void processChange(Database currentModel,
                                 Database desiredModel,
                                 PrimaryKeyChange change)
                          throws IOException

  Processes the change of the primary key of a table.

  Parameters:
    `currentModel` - The current database schema
    `desiredModel` - The desired database schema
    `change` - The change object
  Throws:
    `IOException`

### processColumnChange

    protected void processColumnChange(Table sourceTable,
                                       Table targetTable,
                                       Column sourceColumn,
                                       Column targetColumn)
                                throws IOException

  Processes a change to a column.

  Parameters:
    `sourceTable` - The current table
    `targetTable` - The desired table
    `sourceColumn` - The current column
    `targetColumn` - The desired column
  Throws:
    `IOException`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2005-2007 Apache Software Foundation. All Rights Reserved.