| <?xml version="1.0" encoding="ISO-8859-15"?>
|
| <!--
|
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| -->
|
| <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
|
| <document>
|
| <header>
|
| <title>MySQL</title> |
| </header>
|
| <body>
|
| <p>
|
| <a href="ext:mysql">MySQL</a> is supported from version <strong>3.23</strong> onwards. Note that
|
| the major versions (3, 4, 5) differ in their datatype support. The supported SQL syntax and datatypes
|
| can be found in the <a href="ext:mysql/manual">MySQL Reference Manual</a>.
|
| </p>
|
| <p> |
| DdlUtils provides two platforms, one for MySql versions 3 and 4, and one for MySql version 5 and above. |
| The latter implements some aspects of reading back a model from the database differently to address |
| some changes in MySql 5. |
| </p> |
| <p> </p> |
| <p> |
| Platform identifiers: |
| </p> |
| <ul> |
| <li><code>MySQL</code></li> |
| <li><code>MySQL5</code></li> |
| </ul> |
| <p> </p> |
| <p> |
| Recognized JDBC drivers: |
| </p> |
| <ul> |
| <li><code>com.mysql.jdbc.Driver</code></li> |
| <li><code>org.gjt.mm.mysql.Driver</code></li> |
| </ul> |
| <p> </p> |
| <p> |
| Recognized JDBC sub protocol: |
| </p> |
| <ul> |
| <li><code>jdbc:mysql</code></li> |
| </ul> |
| <p> </p>
|
| <table> |
| <tr> |
| <td class="platformPropName">The database supports SQL comments</td> |
| <td class="platformPropValue">yes</td> |
| </tr> |
| <tr> |
| <td class="platformPropName">The database supports delimited identifiers</td> |
| <td class="platformPropValue">yes</td> |
| </tr> |
| <tr> |
| <td class="platformPropName">The database's maximum identifier length</td> |
| <td class="platformPropValue">64</td> |
| </tr> |
| <tr> |
| <td class="platformPropName">The database supports default values for <code>LONG</code> types</td> |
| <td class="platformPropValue">no</td> |
| </tr> |
| <tr> |
| <td class="platformPropName">DdlUtils uses sequences for identity columns</td> |
| <td class="platformPropValue">no</td> |
| </tr> |
| <tr> |
| <td class="platformPropName">The database supports non-primary key columns as identity columns</td> |
| <td class="platformPropValue">no</td> |
| </tr> |
| <tr> |
| <td class="platformPropName">The database allows INSERT/UPDATE statements to set values for identity columns</td> |
| <td class="platformPropValue">yes</td> |
| </tr> |
| <tr> |
| <td class="platformPropName">DdlUtils can read back the auto-generated value of an identity column</td> |
| <td class="platformPropValue">yes</td> |
| </tr> |
| <tr> |
| <td class="platformPropName">The database supports non-unique indices</td> |
| <td class="platformPropValue">yes</td> |
| </tr> |
| <tr> |
| <td class="platformPropName">DdlUtils can create a database via JDBC</td> |
| <td class="platformPropValue">no</td> |
| </tr> |
| <tr> |
| <td class="platformPropName">DdlUtils can drop a database via JDBC</td> |
| <td class="platformPropValue">no</td> |
| </tr> |
| </table> |
| <p> </p>
|
| <table>
|
| <tr>
|
| <th class="typeMappingJdbcType">JDBC Type</th>
|
| <th class="typeMappingNativeType">Database Type</th>
|
| <th class="typeMappingComments">Additional comments</th>
|
| </tr>
|
| <tr>
|
| <td>ARRAY</td>
|
| <td>LONGBLOB</td>
|
| <td>Will be read back as LONGVARBINARY</td>
|
| </tr>
|
| <tr>
|
| <td>BIGINT</td>
|
| <td>BIGINT</td>
|
| <td></td>
|
| </tr>
|
| <tr>
|
| <td>BINARY</td>
|
| <td>BINARY</td>
|
| <td></td>
|
| </tr>
|
| <tr>
|
| <td>BIT</td>
|
| <td>TINYINT(1)</td>
|
| <td>MySQL has no native boolean type</td>
|
| </tr>
|
| <tr>
|
| <td>BLOB</td>
|
| <td>LONGBLOB</td>
|
| <td>Will be read back as LONGVARBINARY</td>
|
| </tr>
|
| <tr>
|
| <td>BOOLEAN</td>
|
| <td>TINYINT(1)</td>
|
| <td>MySQL has no native boolean type<br/> |
| Will be read back as BIT</td>
|
| </tr>
|
| <tr>
|
| <td>CHAR</td>
|
| <td>CHAR</td>
|
| <td></td>
|
| </tr>
|
| <tr>
|
| <td>CLOB</td>
|
| <td>LONGTEXT</td>
|
| <td>Will be read back as LONGVARCHAR</td>
|
| </tr>
|
| <tr>
|
| <td>DATALINK</td>
|
| <td>MEDIUMBLOB</td>
|
| <td>Will be read back as LONGVARBINARY</td>
|
| </tr>
|
| <tr>
|
| <td>DATE</td>
|
| <td>DATE</td>
|
| <td></td>
|
| </tr>
|
| <tr>
|
| <td>DECIMAL</td>
|
| <td>DECIMAL</td>
|
| <td></td>
|
| </tr>
|
| <tr>
|
| <td>DISTINCT</td>
|
| <td>LONGBLOB</td>
|
| <td>Will be read back as LONGVARBINARY</td>
|
| </tr>
|
| <tr>
|
| <td>DOUBLE</td>
|
| <td>DOUBLE</td>
|
| <td></td>
|
| </tr>
|
| <tr>
|
| <td>FLOAT</td>
|
| <td>DOUBLE</td>
|
| <td>Will be read back as DOUBLE</td>
|
| </tr>
|
| <tr>
|
| <td>INTEGER</td>
|
| <td>INTEGER</td>
|
| <td></td>
|
| </tr>
|
| <tr>
|
| <td>JAVA_OBJECT</td>
|
| <td>LONGBLOB</td>
|
| <td>Will be read back as LONGVARBINARY</td>
|
| </tr>
|
| <tr>
|
| <td>LONGVARBINARY</td>
|
| <td>MEDIUMBLOB</td>
|
| <td></td>
|
| </tr>
|
| <tr>
|
| <td>LONGVARCHAR</td>
|
| <td>MEDIUMTEXT</td>
|
| <td></td>
|
| </tr>
|
| <tr>
|
| <td>NULL</td>
|
| <td>MEDIUMBLOB</td>
|
| <td>Will be read back as LONGVARBINARY</td>
|
| </tr>
|
| <tr>
|
| <td>NUMERIC</td>
|
| <td>DECIMAL</td>
|
| <td>Will be read back as DECIMAL</td>
|
| </tr>
|
| <tr>
|
| <td>OTHER</td>
|
| <td>LONGBLOB</td>
|
| <td>Will be read back as LONGVARBINARY</td>
|
| </tr>
|
| <tr>
|
| <td>REAL</td>
|
| <td>FLOAT</td>
|
| <td>MySQL has a REAL datatype that is per default an alias for DOUBLE, though it might be mapped to FLOAT
|
| via configuration of the server. Therefore, DdlUtils explicitly uses FLOAT.</td>
|
| </tr>
|
| <tr>
|
| <td>REF</td>
|
| <td>MEDIUMBLOB</td>
|
| <td>Will be read back as LONGVARBINARY</td>
|
| </tr>
|
| <tr>
|
| <td>SMALLINT</td>
|
| <td>SMALLINT</td>
|
| <td></td>
|
| </tr>
|
| <tr>
|
| <td>STRUCT</td>
|
| <td>LONGBLOB</td>
|
| <td>Will be read back as LONGVARBINARY</td>
|
| </tr>
|
| <tr>
|
| <td>TIME</td>
|
| <td>TIME</td>
|
| <td></td>
|
| </tr>
|
| <tr>
|
| <td>TIMESTAMP</td>
|
| <td>DATETIME</td>
|
| <td>TIMESTAMP is not a stable MySQL datatype yet, and it does not support a higher precision
|
| than DATETIME (year to seconds) as of MySQL 5, DdlUtils maps the JDBC type to DATETIME instead.</td>
|
| </tr>
|
| <tr>
|
| <td>TINYINT</td>
|
| <td>SMALLINT</td>
|
| <td>In MySQL, TINYINT only has a range of -128 to +127. This DdlUtils uses SMALLINT instead.<br/> |
| Will be read back as SMALLINT</td>
|
| </tr>
|
| <tr>
|
| <td>VARBINARY</td>
|
| <td>VARBINARY</td>
|
| <td></td>
|
| </tr>
|
| <tr>
|
| <td>VARCHAR</td>
|
| <td>VARCHAR</td>
|
| <td></td>
|
| </tr>
|
| </table>
|
| </body>
|
| </document>
|