List of usage examples for java.sql DatabaseMetaData importedKeyRestrict
int importedKeyRestrict
To view the source code for java.sql DatabaseMetaData importedKeyRestrict.
Click Source Link
UPDATE_RULE
, indicates that a primary key may not be updated if it has been imported by another table as a foreign key. From source file:com.nextep.designer.sqlgen.helpers.CaptureHelper.java
/** * Converts a JDBC foreign key action code into a neXtep {@link ForeignKeyAction} enumeration. * /*from ww w . j a va 2 s .c om*/ * @param rule JDBC code of the FK action * @return a {@link ForeignKeyAction} corresponding to the specified JDBC action code if it * match one of the {@link DatabaseMetaData} known values, * {@link ForeignKeyAction#NO_ACTION} otherwise */ public static ForeignKeyAction getForeignKeyAction(short rule) { switch (rule) { case DatabaseMetaData.importedKeyCascade: return ForeignKeyAction.CASCADE; case DatabaseMetaData.importedKeyRestrict: // FIXME [BGA] Very ugly fix to handle the jTDS JDBC driver bug that returns // importedKeyRestrict instead of importedKeyNoAction. DBVendor currVendor = DBGMHelper.getCurrentVendor(); if (currVendor.equals(DBVendor.MSSQL)) { return ForeignKeyAction.NO_ACTION; } else { return ForeignKeyAction.RESTRICT; } case DatabaseMetaData.importedKeySetDefault: return ForeignKeyAction.SET_DEFAULT; case DatabaseMetaData.importedKeySetNull: return ForeignKeyAction.SET_NULL; case DatabaseMetaData.importedKeyNoAction: default: return ForeignKeyAction.NO_ACTION; } }
From source file:de.erdesignerng.dialect.JDBCReverseEngineeringStrategy.java
/** * Convert a JDBC Cascade Type to the Mogwai CascadeType. * <p/>/*from w w w. ja va2s . c o m*/ * Default is CASCADE. * * @param aValue the JDBC type * @return the CascadeType */ protected CascadeType getCascadeType(int aValue) { switch (aValue) { case DatabaseMetaData.importedKeyNoAction: return CascadeType.NOTHING; case DatabaseMetaData.importedKeySetNull: return CascadeType.SETNULL; case DatabaseMetaData.importedKeyCascade: return CascadeType.CASCADE; case DatabaseMetaData.importedKeyRestrict: return CascadeType.RESTRICT; default: return CascadeType.CASCADE; } }
From source file:de.erdesignerng.dialect.oracle.OracleReverseEngineeringStrategy.java
@Override protected CascadeType getCascadeType(int aValue) { switch (aValue) { case DatabaseMetaData.importedKeyRestrict: // Restrict is not supported my this db aValue = DatabaseMetaData.importedKeyNoAction; break;/*w w w . ja v a2 s . c om*/ } return super.getCascadeType(aValue); }
From source file:io.vitess.jdbc.VitessMySQLDatabaseMetadata.java
/** * Parses the cascade option string and returns the DBMD constant that * represents it (for deletes)//from w w w .ja v a 2 s . c om * * @param cascadeOptions * the comment from 'SHOW TABLE STATUS' * @return the DBMD constant that represents the cascade option */ private int getCascadeDeleteOption(String cascadeOptions) { int onDeletePos = cascadeOptions.indexOf("ON DELETE"); if (onDeletePos != -1) { String deleteOptions = cascadeOptions.substring(onDeletePos, cascadeOptions.length()); if (deleteOptions.startsWith("ON DELETE CASCADE")) { return java.sql.DatabaseMetaData.importedKeyCascade; } else if (deleteOptions.startsWith("ON DELETE SET NULL")) { return java.sql.DatabaseMetaData.importedKeySetNull; } else if (deleteOptions.startsWith("ON DELETE RESTRICT")) { return java.sql.DatabaseMetaData.importedKeyRestrict; } else if (deleteOptions.startsWith("ON DELETE NO ACTION")) { return java.sql.DatabaseMetaData.importedKeyNoAction; } } return java.sql.DatabaseMetaData.importedKeyNoAction; }
From source file:io.vitess.jdbc.VitessMySQLDatabaseMetadata.java
/** * Parses the cascade option string and returns the DBMD constant that * represents it (for Updates)//from w w w . j av a2s .c om * * @param cascadeOptions * the comment from 'SHOW TABLE STATUS' * @return the DBMD constant that represents the cascade option */ private int getCascadeUpdateOption(String cascadeOptions) { int onUpdatePos = cascadeOptions.indexOf("ON UPDATE"); if (onUpdatePos != -1) { String updateOptions = cascadeOptions.substring(onUpdatePos, cascadeOptions.length()); if (updateOptions.startsWith("ON UPDATE CASCADE")) { return java.sql.DatabaseMetaData.importedKeyCascade; } else if (updateOptions.startsWith("ON UPDATE SET NULL")) { return java.sql.DatabaseMetaData.importedKeySetNull; } else if (updateOptions.startsWith("ON UPDATE RESTRICT")) { return java.sql.DatabaseMetaData.importedKeyRestrict; } else if (updateOptions.startsWith("ON UPDATE NO ACTION")) { return java.sql.DatabaseMetaData.importedKeyNoAction; } } return java.sql.DatabaseMetaData.importedKeyNoAction; }
From source file:net.sourceforge.squirrel_sql.fw.dialects.DialectUtils.java
private static String constructFKContraintActionClause(boolean override, String conditionClause, String overrideAction, int rule) { // Bug 2531193: Oracle create table script the "ON UPDATE" is wrong final StringBuilder tmp = new StringBuilder(); if (override) { if ("NO ACTION".equals(overrideAction)) { return ""; } else {/*www. jav a2 s. c o m*/ tmp.append(conditionClause); tmp.append(overrideAction); return tmp.toString(); } } switch (rule) { case DatabaseMetaData.importedKeyCascade: tmp.append(conditionClause); if (override) { tmp.append(overrideAction); } else { tmp.append("CASCADE"); } break; case DatabaseMetaData.importedKeySetNull: if (override) { tmp.append(overrideAction); } else { tmp.append("SET NULL"); } break; case DatabaseMetaData.importedKeySetDefault: if (override) { tmp.append(overrideAction); } else { tmp.append("SET DEFAULT"); } break; case DatabaseMetaData.importedKeyRestrict: case DatabaseMetaData.importedKeyNoAction: default: // Append nothing - standard says this is equivalent to NO ACTION // and some DBs // (e.g. Oracle don't accept ... NO ACTION) } return tmp.toString(); }
From source file:org.apache.ddlutils.platform.JdbcModelReader.java
/** * Converts the JDBC action value (one of the <code>importKey</code> constants in the * {@link DatabaseMetaData} class) to a {@link CascadeActionEnum}. * //w w w . jav a2s . c o m * @param jdbcActionValue The jdbc action value * @return The enum value */ protected CascadeActionEnum convertAction(Short jdbcActionValue) { CascadeActionEnum action = null; if (jdbcActionValue != null) { switch (jdbcActionValue.shortValue()) { case DatabaseMetaData.importedKeyCascade: action = CascadeActionEnum.CASCADE; break; case DatabaseMetaData.importedKeySetNull: action = CascadeActionEnum.SET_NULL; break; case DatabaseMetaData.importedKeySetDefault: action = CascadeActionEnum.SET_DEFAULT; break; case DatabaseMetaData.importedKeyRestrict: action = CascadeActionEnum.RESTRICT; break; } } return action; }
From source file:org.apache.ddlutils.task.DumpMetadataTask.java
/** * Dumps the foreign key columns of the indicated table to other tables. * // www.j av a 2 s . c om * @param xmlWriter The xml writer to write to * @param metaData The database metadata * @param catalogName The catalog name * @param schemaName The schema name * @param tableName The table name */ private void dumpFKs(PrettyPrintingXmlWriter xmlWriter, final DatabaseMetaData metaData, final String catalogName, final String schemaName, final String tableName) throws SQLException { performResultSetXmlOperation(xmlWriter, null, new ResultSetXmlOperation() { public ResultSet getResultSet() throws SQLException { return metaData.getImportedKeys(catalogName, schemaName, tableName); } public void handleRow(PrettyPrintingXmlWriter xmlWriter, ResultSet result) throws SQLException { Set columns = getColumnsInResultSet(result); xmlWriter.writeElementStart(null, "foreignKey"); addStringAttribute(xmlWriter, "name", result, columns, "FK_NAME"); addStringAttribute(xmlWriter, "primaryKeyName", result, columns, "PK_NAME"); addStringAttribute(xmlWriter, "column", result, columns, "PKCOLUMN_NAME"); addStringAttribute(xmlWriter, "foreignCatalog", result, columns, "FKTABLE_CAT"); addStringAttribute(xmlWriter, "foreignSchema", result, columns, "FKTABLE_SCHEM"); addStringAttribute(xmlWriter, "foreignTable", result, columns, "FKTABLE_NAME"); addStringAttribute(xmlWriter, "foreignColumn", result, columns, "FKCOLUMN_NAME"); addShortAttribute(xmlWriter, "sequenceNumberInFK", result, columns, "KEY_SEQ"); if (columns.contains("UPDATE_RULE")) { try { switch (result.getShort("UPDATE_RULE")) { case DatabaseMetaData.importedKeyNoAction: xmlWriter.writeAttribute(null, "updateRule", "no action"); break; case DatabaseMetaData.importedKeyCascade: xmlWriter.writeAttribute(null, "updateRule", "cascade PK change"); break; case DatabaseMetaData.importedKeySetNull: xmlWriter.writeAttribute(null, "updateRule", "set FK to NULL"); break; case DatabaseMetaData.importedKeySetDefault: xmlWriter.writeAttribute(null, "updateRule", "set FK to default"); break; default: xmlWriter.writeAttribute(null, "updateRule", "unknown"); break; } } catch (SQLException ex) { log("Could not read the UPDATE_RULE value for a foreign key of table '" + tableName + "' from the result set: " + ex.getStackTrace(), Project.MSG_ERR); } } if (columns.contains("DELETE_RULE")) { try { switch (result.getShort("DELETE_RULE")) { case DatabaseMetaData.importedKeyNoAction: case DatabaseMetaData.importedKeyRestrict: xmlWriter.writeAttribute(null, "deleteRule", "no action"); break; case DatabaseMetaData.importedKeyCascade: xmlWriter.writeAttribute(null, "deleteRule", "cascade PK change"); break; case DatabaseMetaData.importedKeySetNull: xmlWriter.writeAttribute(null, "deleteRule", "set FK to NULL"); break; case DatabaseMetaData.importedKeySetDefault: xmlWriter.writeAttribute(null, "deleteRule", "set FK to default"); break; default: xmlWriter.writeAttribute(null, "deleteRule", "unknown"); break; } } catch (SQLException ex) { log("Could not read the DELETE_RULE value for a foreign key of table '" + tableName + "' from the result set: " + ex.getStackTrace(), Project.MSG_ERR); } } if (columns.contains("DEFERRABILITY")) { try { switch (result.getShort("DEFERRABILITY")) { case DatabaseMetaData.importedKeyInitiallyDeferred: xmlWriter.writeAttribute(null, "deferrability", "initially deferred"); break; case DatabaseMetaData.importedKeyInitiallyImmediate: xmlWriter.writeAttribute(null, "deferrability", "immediately deferred"); break; case DatabaseMetaData.importedKeyNotDeferrable: xmlWriter.writeAttribute(null, "deferrability", "not deferred"); break; default: xmlWriter.writeAttribute(null, "deferrability", "unknown"); break; } } catch (SQLException ex) { log("Could not read the DEFERRABILITY value for a foreign key of table '" + tableName + "' from the result set: " + ex.getStackTrace(), Project.MSG_ERR); } } xmlWriter.writeElementEnd(); } public void handleError(SQLException ex) { log("Could not determine the foreign keys for table '" + tableName + "': " + ex.getStackTrace(), Project.MSG_ERR); } }); }
From source file:org.executequery.databaseobjects.impl.TableColumnConstraint.java
private String translateDeletedRule(Short value) { String translated = String.valueOf(value); if (isForeignKey()) { switch (value) { case DatabaseMetaData.importedKeyNoAction: return translated + " - importedKeyNoAction"; case DatabaseMetaData.importedKeyCascade: return translated + " - importedKeyCascade"; case DatabaseMetaData.importedKeySetNull: return translated + " - importedKeySetNull"; case DatabaseMetaData.importedKeyRestrict: return translated + " - importedKeyRestrict"; case DatabaseMetaData.importedKeySetDefault: return translated + " - importedKeySetDefault"; }//www. j a va 2s.c o m } return translated; }
From source file:org.executequery.databaseobjects.impl.TableColumnConstraint.java
private String translateUpdateRule(Short value) { String translated = String.valueOf(value); if (isForeignKey()) { switch (value) { case DatabaseMetaData.importedKeyNoAction: return translated + " - importedKeyNoAction"; case DatabaseMetaData.importedKeyCascade: return translated + " - importedKeyCascade"; case DatabaseMetaData.importedKeySetNull: return translated + " - importedKeySetNull"; case DatabaseMetaData.importedKeyRestrict: return translated + " - importedKeyRestrict"; case DatabaseMetaData.importedKeySetDefault: return translated + " - importedKeySetDefault"; }/*from www.j a va 2s .c o m*/ } return translated; }