0% found this document useful (0 votes)
28 views1 page

INSERT Named Values: Chapter 2: Inserting

This document discusses how to use named values when inserting rows into a table in SQL. It provides an example of inserting values into specific columns out of order using column names. It also notes that columns without explicitly inserted values will be assigned their default values. The document encourages readers to provide suggestions for new SQL features to the appropriate public newsgroup.

Uploaded by

Ajverson
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views1 page

INSERT Named Values: Chapter 2: Inserting

This document discusses how to use named values when inserting rows into a table in SQL. It provides an example of inserting values into specific columns out of order using column names. It also notes that columns without explicitly inserted values will be assigned their default values. The document encourages readers to provide suggestions for new SQL features to the appropriate public newsgroup.

Uploaded by

Ajverson
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

52 Chapter 2: Inserting

2.2.2 INSERT Named Values


If you want to use a VALUES list but dont want to list every single value, or
you want to rearrange the order of the values, you can add a column name list to
the INSERT.
<insert_named_values> ::= INSERT [ INTO ]
[ <owner_name> "." ] <target_table_name>
"(" <column_name_list> ")"
[ <on_existing> ]
VALUES "(" <named_values_list> ")"
<column_name_list> ::= <column_name> { "," <column_name> }
<column_name> ::= <identifier>
<named_values_list> ::= <value_list> -- for the named columns
When you use this kind of INSERT, the expressions in the VALUES list are
applied to the columns in the order they are specified in the column name list,
and the number of values must match the number of column names. Missing
columns are assigned their default values.

Note: All columns have default values whether or not you code explicit
DEFAULT clauses when creating the tables; the default DEFAULT is NULL.

Here is an example where 'A' is placed in col_2 and 'B' in col_3, out of order,
and all the other columns are assigned their default values:
CREATE TABLE t1 (
key_1 INTEGER NOT NULL DEFAULT AUTOINCREMENT,
col_2 VARCHAR ( 100 ) NOT NULL DEFAULT 'X',
col_3 VARCHAR ( 100 ) NOT NULL DEFAULT 'Y',
updated_by VARCHAR ( 128 ) NOT NULL DEFAULT LAST USER,
last_updated TIMESTAMP NOT NULL DEFAULT TIMESTAMP,
PRIMARY KEY ( key_1 ) );

INSERT t1 ( col_3, col_2 ) VALUES ( 'B', 'A' );


In the CREATE TABLE above, every single column has a DEFAULT value.
That means the following insert will work just fine, and you can execute it over
and over again without error:
INSERT t1 ( key_1 ) VALUES ( DEFAULT );
However, thats as easy as it gets; you cannot write INSERT t1() VALUES().

Tip: If you have a feature youd like to see in SQL Anywhere, dont be afraid
to make the suggestion. Thats how ON EXISTING got added to the INSERT
statement a request was posted in the public newsgroup called sybase.pub-
lic.sqlanywhere.product_futures_discussion, which is located on the NNTP server
at forums.sybase.com. You can post to this newsgroup with NNTP client software
like Forte Agent, or use your web browser to go to www.ianywhere.com/devel-
oper and click on Newsgroups. Not every suggestion is implemented, but every
suggestion is taken seriously by the folks responsible for product development.

You might also like