Available in versions: Dev (3.19) | Latest (3.18) | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11 | 3.10 | 3.9

Defaults

Applies to ✅ Open Source Edition   ✅ Express Edition   ✅ Professional Edition   ✅ Enterprise Edition

The DEFAULT expression on a column definition defines what value the column should contain if it is omitted in an INSERT statement, or if an explicit DEFAULT expression is used in INSERT or UPDATE. By default, this is NULL in most dialects

// Create a new table with a column with a default expression
create.createTable("table")
      .column("column1", INTEGER.defaultValue(1))
      .execute();

To trigger this DEFAULT expression, you can run this, for example:

// Insert a row using the default expression
create.insertInto(table(name("table"))).defaultValues().execute();

Dialect support

This example using jOOQ:

createTable("table")
      .column("column1", INTEGER.defaultValue(1))

Translates to the following dialect specific expressions:

-- ACCESS, DB2, FIREBIRD, HANA, INFORMIX, TERADATA
CREATE TABLE table (
  column1 integer DEFAULT 1
)

-- ASE
CREATE TABLE table (
  column1 int DEFAULT 1 NULL
)

-- AURORA_MYSQL, AURORA_POSTGRES, DERBY, DUCKDB, EXASOL, H2, HSQLDB, MARIADB, MEMSQL, MYSQL, POSTGRES, REDSHIFT, 
-- SQLDATAWAREHOUSE, SQLSERVER, VERTICA, YUGABYTEDB
CREATE TABLE table (
  column1 int DEFAULT 1
)

-- BIGQUERY
CREATE TABLE table (
  column1 int64 DEFAULT 1
)

-- COCKROACHDB
CREATE TABLE table (
  column1 int4 DEFAULT 1
)

-- ORACLE, SNOWFLAKE
CREATE TABLE table (
  column1 number(10) DEFAULT 1
)

-- SQLITE
CREATE TABLE "table" (
  column1 int DEFAULT 1
)

-- SYBASE
CREATE TABLE table (
  column1 int NULL DEFAULT 1
)

-- TRINO
/* UNSUPPORTED */

(These are currently generated with jOOQ 3.19, see #10141), or translate your own on our website

References to this page

Feedback

Do you have any feedback about this page? We'd love to hear it!

The jOOQ Logo