/**
 * This class is generated by jOOQ
 */
package schema.information_schema.tables;

/**
 * This class is generated by jOOQ.
 */
@javax.annotation.Generated(
	value = {
		"http://www.jooq.org",
		"jOOQ version:3.5.4"
	},
	comments = "This class is generated by jOOQ"
)
@java.lang.SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class ReferentialConstraints extends org.jooq.impl.TableImpl<schema.information_schema.tables.records.ReferentialConstraintsRecord> {

	private static final long serialVersionUID = -1307963850;

	/**
	 * The reference instance of <code>information_schema.REFERENTIAL_CONSTRAINTS</code>
	 */
	public static final schema.information_schema.tables.ReferentialConstraints REFERENTIAL_CONSTRAINTS = new schema.information_schema.tables.ReferentialConstraints();

	/**
	 * The class holding records for this type
	 */
	@Override
	public java.lang.Class<schema.information_schema.tables.records.ReferentialConstraintsRecord> getRecordType() {
		return schema.information_schema.tables.records.ReferentialConstraintsRecord.class;
	}

	/**
	 * The column <code>information_schema.REFERENTIAL_CONSTRAINTS.CONSTRAINT_CATALOG</code>.
	 */
	public final org.jooq.TableField<schema.information_schema.tables.records.ReferentialConstraintsRecord, java.lang.String> CONSTRAINT_CATALOG = createField("CONSTRAINT_CATALOG", org.jooq.impl.SQLDataType.VARCHAR.length(512).nullable(false).defaulted(true), this, "");

	/**
	 * The column <code>information_schema.REFERENTIAL_CONSTRAINTS.CONSTRAINT_SCHEMA</code>.
	 */
	public final org.jooq.TableField<schema.information_schema.tables.records.ReferentialConstraintsRecord, java.lang.String> CONSTRAINT_SCHEMA = createField("CONSTRAINT_SCHEMA", org.jooq.impl.SQLDataType.VARCHAR.length(64).nullable(false).defaulted(true), this, "");

	/**
	 * The column <code>information_schema.REFERENTIAL_CONSTRAINTS.CONSTRAINT_NAME</code>.
	 */
	public final org.jooq.TableField<schema.information_schema.tables.records.ReferentialConstraintsRecord, java.lang.String> CONSTRAINT_NAME = createField("CONSTRAINT_NAME", org.jooq.impl.SQLDataType.VARCHAR.length(64).nullable(false).defaulted(true), this, "");

	/**
	 * The column <code>information_schema.REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_CATALOG</code>.
	 */
	public final org.jooq.TableField<schema.information_schema.tables.records.ReferentialConstraintsRecord, java.lang.String> UNIQUE_CONSTRAINT_CATALOG = createField("UNIQUE_CONSTRAINT_CATALOG", org.jooq.impl.SQLDataType.VARCHAR.length(512).nullable(false).defaulted(true), this, "");

	/**
	 * The column <code>information_schema.REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA</code>.
	 */
	public final org.jooq.TableField<schema.information_schema.tables.records.ReferentialConstraintsRecord, java.lang.String> UNIQUE_CONSTRAINT_SCHEMA = createField("UNIQUE_CONSTRAINT_SCHEMA", org.jooq.impl.SQLDataType.VARCHAR.length(64).nullable(false).defaulted(true), this, "");

	/**
	 * The column <code>information_schema.REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME</code>.
	 */
	public final org.jooq.TableField<schema.information_schema.tables.records.ReferentialConstraintsRecord, java.lang.String> UNIQUE_CONSTRAINT_NAME = createField("UNIQUE_CONSTRAINT_NAME", org.jooq.impl.SQLDataType.VARCHAR.length(64), this, "");

	/**
	 * The column <code>information_schema.REFERENTIAL_CONSTRAINTS.MATCH_OPTION</code>.
	 */
	public final org.jooq.TableField<schema.information_schema.tables.records.ReferentialConstraintsRecord, java.lang.String> MATCH_OPTION = createField("MATCH_OPTION", org.jooq.impl.SQLDataType.VARCHAR.length(64).nullable(false).defaulted(true), this, "");

	/**
	 * The column <code>information_schema.REFERENTIAL_CONSTRAINTS.UPDATE_RULE</code>.
	 */
	public final org.jooq.TableField<schema.information_schema.tables.records.ReferentialConstraintsRecord, java.lang.String> UPDATE_RULE = createField("UPDATE_RULE", org.jooq.impl.SQLDataType.VARCHAR.length(64).nullable(false).defaulted(true), this, "");

	/**
	 * The column <code>information_schema.REFERENTIAL_CONSTRAINTS.DELETE_RULE</code>.
	 */
	public final org.jooq.TableField<schema.information_schema.tables.records.ReferentialConstraintsRecord, java.lang.String> DELETE_RULE = createField("DELETE_RULE", org.jooq.impl.SQLDataType.VARCHAR.length(64).nullable(false).defaulted(true), this, "");

	/**
	 * The column <code>information_schema.REFERENTIAL_CONSTRAINTS.TABLE_NAME</code>.
	 */
	public final org.jooq.TableField<schema.information_schema.tables.records.ReferentialConstraintsRecord, java.lang.String> TABLE_NAME = createField("TABLE_NAME", org.jooq.impl.SQLDataType.VARCHAR.length(64).nullable(false).defaulted(true), this, "");

	/**
	 * The column <code>information_schema.REFERENTIAL_CONSTRAINTS.REFERENCED_TABLE_NAME</code>.
	 */
	public final org.jooq.TableField<schema.information_schema.tables.records.ReferentialConstraintsRecord, java.lang.String> REFERENCED_TABLE_NAME = createField("REFERENCED_TABLE_NAME", org.jooq.impl.SQLDataType.VARCHAR.length(64).nullable(false).defaulted(true), this, "");

	/**
	 * Create a <code>information_schema.REFERENTIAL_CONSTRAINTS</code> table reference
	 */
	public ReferentialConstraints() {
		this("REFERENTIAL_CONSTRAINTS", null);
	}

	/**
	 * Create an aliased <code>information_schema.REFERENTIAL_CONSTRAINTS</code> table reference
	 */
	public ReferentialConstraints(java.lang.String alias) {
		this(alias, schema.information_schema.tables.ReferentialConstraints.REFERENTIAL_CONSTRAINTS);
	}

	private ReferentialConstraints(java.lang.String alias, org.jooq.Table<schema.information_schema.tables.records.ReferentialConstraintsRecord> aliased) {
		this(alias, aliased, null);
	}

	private ReferentialConstraints(java.lang.String alias, org.jooq.Table<schema.information_schema.tables.records.ReferentialConstraintsRecord> aliased, org.jooq.Field<?>[] parameters) {
		super(alias, schema.information_schema.InformationSchema.INFORMATION_SCHEMA, aliased, parameters, "");
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public schema.information_schema.tables.ReferentialConstraints as(java.lang.String alias) {
		return new schema.information_schema.tables.ReferentialConstraints(alias, this);
	}

	/**
	 * Rename this table
	 */
	public schema.information_schema.tables.ReferentialConstraints rename(java.lang.String name) {
		return new schema.information_schema.tables.ReferentialConstraints(name, null);
	}
}
