----------  Update  ----------

Records in a table may be updated via: a single  non-interactive  command;  an
operating system file; or an Interactive Interface with attribute prompting.

A module can only be updated via a non-interactive update command, and the 
keyword "module" should be used.

1) To update records non-interactively, use one of:

Syntax:

a)   update TABLE set ATTR_NAME |= | |EXPR           |
                                |to| |null           |
                                     |SCALAR_SUBQUERY|

         {, ATTR_NAME |= | |EXPR           |} [WHERE_CLAUSE];
                      |to| |null           |
                           |SCALAR_SUBQUERY|

b)   update TABLE  | set to |EXPR           | {, |EXPR           |}   |
                   |        |null           |    |null           |    |
                   |        |SCALAR_SUBQUERY|    |SCALAR_SUBQUERY|    |
                   |                                                  |
                   | values |EXPR           | {, |EXPR           |}   |
                   |        |null           |    |null           |    |
                   |        |SCALAR_SUBQUERY|    |SCALAR_SUBQUERY|    |
                   |                                                  |
                   | values (|EXPR           | {, |EXPR           |}) |
                   |         |null           |    |null           |   |
                   |         |SCALAR_SUBQUERY|    |SCALAR_SUBQUERY|   |

        [WHERE_CLAUSE];

c)   update TABLE |(*)                      |
                  |(ATTR_NAME {, ATTR_NAME})|

                  | set to |EXPR           | {, |EXPR           | }   |
                  |        |null           |    |null           |     |
                  |        |SCALAR_SUBQUERY|    |SCALAR_SUBQUERY|     |
                  |                                                   |
                  |    |EXPR           | {, |EXPR           | } [end] |
                  |    |null           |    |null|                    |
                  |    |SCALAR_SUBQUERY|    |SCALAR_SUBQUERY|         |
                  |                                                   |
                  | values |EXPR           | {, |EXPR           | }   |
                  |        |null           |    |null           |     |
                  |        |SCALAR_SUBQUERY|    |SCALAR_SUBQUERY|     |
                  |                                                   |
                  | values (|EXPR           | {, |EXPR           |})  |
                  |         |null           |    |null           |    |
                  |         |SCALAR_SUBQUERY|    |SCALAR_SUBQUERY|    |

        [WHERE_CLAUSE];

d)   update TABLE set |*                      |
                      |ATTR_NAME {, ATTR_NAME}|

                  | |EXPR           | {, |EXPR           | } [end]   |
                  | |null           |    |null           |           |
                  | |SCALAR_SUBQUERY|    |SCALAR_SUBQUERY|           |
                  |                                                  |
                  | values |EXPR           | {, |EXPR           | }  |
                  |        |null           |    |null           |    |
                  |        |SCALAR_SUBQUERY|    |SCALAR_SUBQUERY|    |
                  |                                                  |
                  | values (|EXPR           | {, |EXPR           |}) |
                  |         |null           |    |null           |   |
                  |         |SCALAR_SUBQUERY|    |SCALAR_SUBQUERY|   |

        [WHERE_CLAUSE];

Here, the values are given in the command itself, and those records satisfying
any  WHERE clause are updated.  Each value is assigned to the specified attri-
bute.  Unspecified attributes are left unchanged.

For further information, enter:

                help expr;
                help scalar_subquery;
                help where_clause;

2) To update records from an operating system file, use:

Syntax:

     update TABLE [ | (*)               | ] from FILE [WHERE_CLAUSE];
                    | (ATTR {, ATTR})   |
                    | set *             |
                    | set ATTR {, ATTR} |

Here, the values for multiple records satisfying any  WHERE  clause  are  con-
tained in the file FILE.

The FILE may be set up as one record per line with attribute values  separated
by CTRL-V's (default), or one attribute value per line.  If ATTR's are set, it
is essential they appear in the same order as in FILE.

3) To update records via the Interactive Interface, use one of:

Syntax:

a)   update TABLE [WHERE_CLAUSE];

b)   update TABLE |(*)            | [WHERE_CLAUSE];
                  |(ITEM {, ITEM})|

c)   update TABLE |set ||*            | {[:] |set ||*            |}
                  |show||ITEM {, ITEM}|      |show||ITEM {, ITEM}|
     [WHERE_CLAUSE];

ITEM is ATTR [print HEADER]

If only "update TABLE" is specified, all attributes of TABLE will be  prompted
for  in the default order.  If a list of attributes is specified, they will be
prompted for values in that order.  Using "*" prompts for  all  attributes  in
the  table.   The  keyword "set" allows values to be updated while "show" only
displays the attribute name and value, if there is one.

Only those records satisfying any WHERE clause will be prompted for updating.

For further information on Interactive Interface commands, enter:

                help ia_update;
