How To Omit Columns with Default Values in INSERT Statement

Q

How To Omit Columns with Default Values in INSERT Statement? - Oracle DBA FAQ - Understanding SQL DML Statements

✍: FYIcenter.com

A

If you don't want to specify values for columns that have default values, or you want to specify values to columns in an order different than how they are defined, you can provide a column list in the INSERT statement. If a column is omitted in the column, Oracle applies 3 rules:

  • If default value is defined for the column, that default value will be used.
  • If no default value is defined for the column and NULL is allowed, NULL will be used.
  • If no default value is defined for the column and NULL is not allowed, error will be returned.

The following tutorial exercise gives a good example:

INSERT INTO fyi_links (url, id) 
  VALUES ('http://sqa.fyicenter.com', 103);
1 row created.

SELECT * FROM fyi_links;
   ID URL                      NOTES     COUNTS CREATED
----- ------------------------ -------- ------- ---------
  101 http://dev.fyicenter.com NULL           0 30-Apr-06
  102 http://dba.fyicenter.com NULL           0 07-MAY-06
  103 http://sqa.fyicenter.com NULL     NULL    07-MAY-06  

2007-04-21, 4616👍, 0💬