INSERT
Inserts rows of data into a table or updatable view
INSERT INTO target
  { DEFAULT VALUES
  | [(<column_list>)] [<override_opt>] <value-source> }
  [RETURNING <returning_list> [INTO <variables>]]
<column_list> ::= col_name [, col_name ...]
<override_opt> ::=
  OVERRIDING {USER | SYSTEM} VALUE
<value-source> ::= VALUES (<value-list>) | <query-expression>
<value-list> ::= <ins-value> [, <ins-value> ...]
<ins-value> :: = <value-expression> | DEFAULT
<returning_list> ::= * | <output_column> [, <output_column]
<output_column> ::=
    target.*
  | <return_expression> [COLLATE collation] [[AS] alias]
<return_expression> ::=
    <value-expression>
  | [target.]col_name
<value-expression> ::=
    <literal>
  | <context-variable>
  | any other expression returning a single
    value of a Firebird data type or NULL
<variables> ::= [:]varname [, [:]varname ...]
| Argument | Description | 
|---|---|
| target | The name of the table or view to which a new row, or batch of rows, should be added | 
| col_name | Name of a table or view column | 
| value-expression | An expression whose value is used for inserting into the table or for returning | 
| return_expression | The expression to be returned in the  | 
| literal | A literal | 
| context-variable | Context variable | 
| varname | Name of a PSQL local variable | 
The INSERT statement is used to add rows to a table or to one or more tables underlying a view:
- 
If the column values are supplied in a VALUESclause, exactly one row is inserted
- 
The values may be provided instead by a SELECTexpression, in which case zero to many rows may be inserted
- 
With the DEFAULT VALUESclause, no values are provided at all and exactly one row is inserted.
| Note | Restrictions 
 | 
| Important | ALERT :  BEFORE INSERTTriggersRegardless of the method used for inserting rows, be mindful of any columns in the target table or view that are populated by  |