Skip to main content

DbMon

DbMon is the Genesis database client. It provides a set of commands that enable you to view and change the database as necessary. DbMon hides the details of the specific database technology, so this does not affect your usage.

You can use Generic database clients to work with the Genesis Application Platform, but we recommend that you use DbMon.

This page gives details of all the DbMon commands and provides practical examples of how you can use them.

Starting DbMon

To start a DbMon session, first switch to the user that owns the Genesis installation. Then type DbMon at the command prompt:

[titian] /home/titian >DbMon

==================================
Genesis database Monitor
Enter 'help' for a list of commands
==================================
DbMon>

As you can see, once you are in a DbMon session, the DbMon> prompt is displayed:

Exiting DbMon

To end a DbMon session, just type quit at the DbMon> prompt.

Finding and viewing information

A Genesis database organizes information in tables and views. DbMon enables you to:

  • find all the tables in your database (showTables)
  • select a table to examine (table)
  • find all the views in your database (showViews)
  • select a view to examine (view)

The showTables and showViews commands display an alphabetical list of available tables or views. For example, here we have used the command showTables:

==================================
List of tables
==================================
ACCOUNT
ADIF_SSI
ALERT
ALERT_AUDIT
ALT_COUNTERPARTY_ID
ALT_INSTRUMENT_ID
APPROVAL
APPROVAL_AUDIT
APPROVAL_ENTITY
APPROVAL_ENTITY_COUNTER
AUDIT
AUDIT_SSI_UPDATE
AUDIT_TRAIL
BROKER
<<List continues...>>

Selecting a table

To look at the data held in a specific table, use the table command followed by the table name: for example table BROKER. Once you have selected a table, the DbMon prompt changes to show the table name.

DbMon>table BROKER
DbMon:BROKER>

Selecting a view

To look at the data held in a specific view, use the view command followed by the view name: for example view BROKER_VIEW. Once you have selected a view, the DbMon prompt changes to show the view name.

DbMon>view BROKER_VIEW
DbMon:BROKER_VIEW>

Viewing the columns in a table or view

To see the columns in the currently selected table or view, use the show command. This displays the columns (fields) for the current record. If you haven't already retrieved a specific record, the Value column will be empty (as you can see in the example below):

==================================
BROKER
==================================
Field Name Value Type
===========================================================================================
TIMESTAMP NANO_TIMESTAMP
BROKER_ID INT
BROKER_PARENT_ID INT
CODE STRING
CODE_TYPE STRING
COUNTRY_CODE STRING
CREATED_DATE DATETIME
CREATED_USER STRING
EXTERNAL_ID STRING
FID_BROKER_ID STRING
IS_ACTIVE BOOLEAN
LEI_NUMBER STRING
MODIFIED_DATE DATETIME
MODIFIED_USER STRING
NAME STRING
NETTING_GROUP_ID INT
REGION STRING
VIEW_CODE STRING

Viewing selected columns

If you are only interested in seeing selected columns, use the displayFields command and list the names of the columns you are interested in (separated by spaces).

While you continue to work on the selected table or view, subsequent show commands will only display those columns. To view all the columns again, use the displayFields command followed by no column names.

In the example below, we have used displayFields to view four specific columns:

DbMon:BROKER>displayFields BROKER_ID NAME REGION COUNTRY_CODE
Display fields set!
DbMon:BROKER>show
==================================
BROKER
==================================
Field Name Value Type
===========================================================================================
BROKER_ID INT
COUNTRY_CODE STRING
NAME STRING
REGION STRING
DbMon:BROKER>displayFields
Display fields reset!

Finding and viewing a specific record

In DbMon you can only see one record at a time.

To display the record you want, use the find command, which searches the table’s indices for a given key value.

So you need to know what the indices (keys) are for the currently selected table or view; for this, use the showKeys command. This lists each key (index), along with the field name you need to supply to use the index. In the example below, the BROKER table has a primary index (BROKER_BY_ID, where the relevant field is BROKER_ID) and three secondary indices.

DbMon:BROKER>showKeys
==================================
BROKER
==================================
Key Name Field Name Index Type
=======================================================
BROKER_BY_BROKER_EXTERNAL_ID EXTERNAL_ID Secondary
------------------------------------------------------------------------------------------
BROKER_BY_ID BROKER_ID Primary
------------------------------------------------------------------------------------------
BROKER_BY_TIMESTAMP TIMESTAMP Secondary
------------------------------------------------------------------------------------------
BROKER_BY_VIEW_CODE VIEW_CODE Secondary
------------------------------------------------------------------------------------------

Now that you know the indices and the fields they require, you can find a record in the table or view.

The example below looks for a broker that has a VIEW_CODE value of WALSH.

  1. The set command sets the value of the VIEW_CODE to the value WALSH. This is a local setting; it does not change the database.
  2. The [find]](#dbmon-commands) command looks for the index (key) BROKER_BY_VIEW_CODE.
  3. The [show]](#dbmon-commands) command displays the result.
DbMon:BROKER>set VIEW_CODE WALSH
DbMon:BROKER>find BROKER_BY_VIEW_CODE
DbMon:BROKER>show
==================================
BROKER
==================================
Field Name Value Type
===========================================================================================
TIMESTAMP 2022-07-08 14:14:26.818(n:0,s:2630) NANO_TIMESTAMP
BROKER_ID 725 INT
BROKER_PARENT_ID 724 INT
CODE 114216 STRING
CODE_TYPE Registered STRING
COUNTRY_CODE GBR STRING
CREATED_DATE 2022-12-11 11:43:53.210 +0000 DATETIME
CREATED_USER ismail.augustine STRING
EXTERNAL_ID 725N STRING
FID_BROKER_ID WALSH STRING
IS_ACTIVE true BOOLEAN
LEI_NUMBER MP6I5ZYZBEU3UXPYFY54 STRING
MODIFIED_DATE 2022-03-14 09:44:25.703 +0000 DATETIME
MODIFIED_USER ismail.augustine STRING
NAME WALSH Bank Plc STRING
NETTING_GROUP_ID INT
REGION UK STRING
VIEW_CODE WALSH STRING

Clearing the context

If you then want to find a record with a different VIEW_CODE, use the clear command to clear the record. You can then use set and find commands to locate the new record.

The clear command does not change the database.

Searching for one or more records

To look for a record (or a number of records) without using an index (key), use the search command. This lists all the records that match the criteria that you supply.

warning

For larger tables, this can be slow and could cause latency to users of your application.

For example, to find all the records in the BROKER table where the COUNTRY_CODE is IRL:

DbMon:BROKER>search COUNTRY_CODE=='IRL'
==================================
BROKER
==================================
Field Name Value Type
===========================================================================================
TIMESTAMP 2022-02-12 11:07:58.116339964 NANO_TIMESTAMP
BROKER_ID 4001 INT
BROKER_PARENT_ID INT
CODE 223987 STRING
CODE_TYPE Registered STRING
COUNTRY_CODE IRL STRING
CREATED_DATE 2022-10-08 14:20:17.400 +0000 DATETIME
CREATED_USER john.clement STRING
EXTERNAL_ID 4001N STRING
FID_BROKER_ID SISS STRING
IS_ACTIVE true BOOLEAN
LEI_NUMBER 636400IBV22ZOU1NFS87 STRING
MODIFIED_DATE 2022-10-08 14:20:17.400 +0000 DATETIME
MODIFIED_USER john.clement STRING
NAME Phillip N Orion ltd STRING
NETTING_GROUP_ID 601 INT
REGION UK STRING
VIEW_CODE SISS STRING
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
Total Results: 1

The example above found only one record, so it displayed it. If there are multiple records that match the search criteria, these are listed one after the other on the screen.

DbMon:BROKER>search COUNTRY_CODE=='USA'
==================================
BROKER
==================================
Field Name Value Type
===========================================================================================
<Results Snipped>
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
Total Results: 6

To limit the number of results, you can supply the limit (-l) parameter to the search command. In the example below, we repeat the previous search, but limit the number of results to the first three.

DbMon:BROKER>search COUNTRY_CODE=='USA' -l 3
==================================
BROKER
==================================
Field Name Value Type
===========================================================================================
<Results Snipped>
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
Total Results: 3

To join criteria together, use || for logical OR and && for logical AND. For example, if you want to search for any BROKER where the COUNTRY_CODE is USA or IRL:

DbMon:BROKER>search COUNTRY_CODE=='IRL'||COUNTRY_CODE=='USA'
==================================
BROKER
==================================
Field Name Value Type
===========================================================================================
<Results Snipped>
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
Total Results

The logical operators available are:

SymbolName
==Equality (Equal To)
!=Non-Equality (Not Equal To)
>Greater Than
<Less Than
&&Logical And
Logical Or

Searching with wildcards

You can search using the * wildcard. Note that this might be quite slow if running against a large dataset. For example:

DbMon:USER_ATTRIBUTES>search USER_NAME.matches('Dealer1.*')
==================================
USER_ATTRIBUTES
==================================
Field Name Value Type
===========================================================================================
<Results snipped>
-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
Total Results: 3

Searching for a date or datetime

To search for a DATE, you must specify the date in the format:

  • DATE_FORMAT = "yyyyMMdd"

To search for a datetime, you can specify any of the following formats:

  • DateTime with milliseconds precision: DATETIME_FORMAT = "yyyyMMdd-HH:mm:ss.SSS"
  • DateTime with seconds precision: DATETIME_FORMAT = "yyyyMMdd-HH:mm:ss"
  • DateTime with minutes precision: DATETIME_FORMAT = "yyyyMMdd-HH:mm"
  • DateTime with day precision = "yyyyMMdd"
  • DateTime with day precision = "yyyy-MM-dd"

Here are some examples of searches for datetimes and dates:

// if MODIFIED_DATE is 2022-10-08 14:20:17.400 in database
DbMon:BROKER>search MODIFIED_DATE=="20221008-14:20:17.400"

// if MODIFIED_DATE is 2022-10-08 14:20:17 in database
DbMon:BROKER>search MODIFIED_DATE=="20221008-14:20:17"

// if MODIFIED_DATE is 2022-10-08 14:20 in database
DbMon:BROKER>search MODIFIED_DATE>"20221008-14:20" && COUNTRY_CODE=='IRL'

// if MODIFIED_DATE is 2022-10-08 in database
DbMon:BROKER>search MODIFIED_DATE=="20221008" || COUNTRY_CODE=='IRL'

Searching for timestamps

Timestamps, are made of a timestamp in milliseconds, the sequence id and the node id: for example, 2023-01-01 00:00:00.000 (n:0, s:1).

You can search for a timestamp using the same formats as datetime. Those formats are:

  • yyyyMMdd-hh:mm:ss.SSS
  • yyyyMMdd-hh:mm:ss
  • yyyyMMdd-hh:mm
  • yyyyMMdd
  • yyyy-MM-dd

To search for timestamps, you must use ranges - you cannot use specific values. For example, if you wanted to search for records with a timestamp of 2023-01-01 00:00:00.000 rather than searching:

search TIMESTAMP=="20230101"

you could do:

search TIMESTAMP>"20221231" && TIMESTAMP<"20230102"

You could also search for all records with a timestamp after a specific time. For example:

search TIMESTAMP>"20230817-06:12:52.313"

Counting rows (records)

To discover how many rows of data there are in the currently selected table or view, use the count command. For large database entities, this could take some time to return:

DbMon:BROKER>count
The table BROKER contains 114 records

Finding distinct records

The distinct command provides another useful way of searching. Here are some examples of searches that use the distinct command to find records with a specific field value, which were modified at a specific date or datetime:

// if MODIFIED_DATE is 2022-10-08 14:20:17.400 in database
DbMon:BROKER>distinct BROKER_ID -where MODIFIED_DATE=="20221008-14:20:17.400"

// if MODIFIED_DATE is 2022-10-08 14:20:17 in database
DbMon:BROKER>distinct BROKER_ID -where MODIFIED_DATE>"20221008-14:20:17" && IS_ACTIVE=='true'

// if MODIFIED_DATE is 2022-10-08 14:20 in database
DbMon:BROKER>distinct BROKER_ID -where MODIFIED_DATE<"20221008-14:20" || IS_ACTIVE=='true'

// if MODIFIED_DATE is 2022-10-08 in database
DbMon:BROKER>distinct BROKER_ID -where MODIFIED_DATE=="20221008"

The distinct command is also useful for counting records with specific characteristics.

In the example below, the distinct command is used to find out how many BROKER records there are for each unique COUNTRY_CODE.

DbMon:BROKER>distinct COUNTRY_CODE
Distinct Value Count
===========================================================================================
AUS 1
BEL 1
DEU 1
FRA 2
GBR 114
IRL 1
NLD 2
USA 6
-------------------------------------------------------------------------------------------
Total Results: 128
Total Distinct Values Count: 8

The distinct command also accepts a -where parameter, which enables you to filter the rows that are counted.

The next example retrieves the count of unique COUNTRY_CODE for BROKER records that have a REGION of UK, but which do not have the value of GBP for COUNTRY_CODE:

DbMon:BROKER>distinct COUNTRY_CODE -where REGION=='UK'&&COUNTRY_CODE!='GBR'
Distinct Value Count
===========================================================================================
AUS 1
BEL 1
DEU 1
FRA 2
IRL 1
NLD 2
-------------------------------------------------------------------------------------------
Total Results: 8
Total Distinct Values Count: 6

So, what has this found?

  • At the bottom, the Total Results is 8. There are 8 records where the region is UK but the country code is not GBR.
  • The Distinct Values is 6. There are 6 Country Codes where the region is UK, but whose country code is not GBR. These are the six rows displayed.

Note that there is no validation of the field when you use the distinct command. So if we ran the previous example, but we incorrectly typed COUNTRY_COD instead of COUNTRY_CODE. The command would still work, but the result is potentially confusing.

DbMon:BROKER>distinct COUNTRY_COD -where REGION=='UK'&&COUNTRY_CODE!='GBR'
Distinct Value Count
===========================================================================================
[null] 8
-------------------------------------------------------------------------------------------
Total Results: 8
Total Distinct Values Count: 1

So, what happened there?

  • There are no instances of Country_COD, so the only Distinct Value is [null].
  • However, the count is still 8 for this line, because there are 8 records where the region is UK but the country code is not GBR.
  • The Total Results value is the sum of the counts: 8. If your field was invalid, then the Total Results will always equal the count because there is only one value found - null.
  • The Total Distinct Values Count is effectively the number of rows: 1. Only one value was found - null.

Finding the first and last record

If you are interested in selecting the first or the last record, you can use the first or last along with the index name. You need to run the show command to view that record.

In the following example, we select the first record in the TRADE table using the index TRADE_BY_ID; we then use show to see the record.

DbMon:TRADE>first TRADE_BY_ID
DbMon:TRADE>show
==================================
TRADE
==================================
Field Name Value Type
===========================================================================================
TIMESTAMP 2023-08-15 12:09:47.802(n:0,s:112) NANO_TIMESTAMP
COUNTERPARTY_ID 3 STRING
DIRECTION BUY ENUM[BUY SELL]
ENTERED_BY admin STRING
INSTRUMENT_ID 1 STRING
PRICE 76.0 DOUBLE
QUANTITY 99 INT
SYMBOL EUR STRING
TRADE_DATE DATE
TRADE_ID 0350e01b-7064-4c60-8bcc-6084b6bee342T... STRING
TRADE_STATUS NEW ENUM[NEW ALLOCATED CANCELLED]

Displaying the next record

To view the next record in the currently selected table or view, use the next command and then the show command. With the next command, you must always specify a valid index for the table.

The following example displays the next record in the currently selected table (TRADE), where the index is TRADE_BY_ID.

DbMon:TRADE>next TRADE_BY_ID
DbMon:TRADE>show
==================================
TRADE
==================================
Field Name Value Type
===========================================================================================
TIMESTAMP 2023-08-15 12:09:10.992(n:0,s:103) NANO_TIMESTAMP
COUNTERPARTY_ID 3 STRING
DIRECTION BUY ENUM[BUY SELL]
ENTERED_BY admin STRING
INSTRUMENT_ID 1 STRING
PRICE 76.0 DOUBLE
QUANTITY 99 INT
SYMBOL EUR STRING
TRADE_DATE DATE
TRADE_ID a4ce9a4c-21e1-416c-ae48-401eeef3f3b9T... STRING
TRADE_STATUS NEW ENUM[NEW ALLOCATED CANCELLED]

Changing the database

Whenever you make a change to the database, you must use first the command writeMode. This is designed to protect the database against casual or unintended changes.

To change a field value in a record:

  1. Find the table or view that the field belongs to.
  2. Select that table or view.
  3. Find and show the record that you want to change.
  4. Set the value of the field.
  5. Run writeMode.
  6. Insert the new value.

Changing the value of a field

The set command enables you to set the value of a specific field in the record you are viewing from the currently selected table or view. You need to set the value before you write to the database. The set command itself does not change the database. This protects the database from casual changes.

In the example below, we are viewing a record in the TRADE table. The command sets a new value for the QUANTITY field:

DbMon:TRADE>set QUANTITY 10

In the example below, we are viewing the TRADE table. We set new values for the PRICE and QUANTITY fields:

DbMon:TRADE>set PRICE,QUANTITY 523.1,9000

To set a value to null, use the unset command, for example:

DbMon:TRADE>unset QUANTITY
info

The set and unset commands themselves do not change the database.

Inserting a new record

To insert a new record into a table in the database, use the insert command. You will always be asked to confirm the command.

  1. Find and select the required table or view, and show the fields.
  2. Set the values of the required fields.
  3. Enable writeMode.
  4. Insert.

In the example below, we use the set command to create a new record before inserting it into the TRADE table of the database.

DbMon:TRADE>set PRICE 80
DbMon:TRADE>set QUANTITY 70
DbMon:TRADE>set TRADE_ID DbMonTest
DbMon:TRADE>show
==================================
TRADE
==================================
Field Name Value Type
===========================================================================================
TIMESTAMP NANO_TIMESTAMP
COUNTERPARTY_ID 1 STRING
DIRECTION BUY ENUM[BUY SELL]
ENTERED_BY admin STRING
INSTRUMENT_ID 1 STRING
PRICE 80.0 DOUBLE
QUANTITY 70 INT
SYMBOL EUR STRING
TRADE_DATE DATE
TRADE_ID DbMonTest STRING
TRADE_STATUS NEW ENUM[NEW ALLOCATED CANCELLED]
DbMon:TRADE>insert
Are you sure you wish to execute the command? Y/N
y
Record saved
info

The insert command always inserts a new record with the values you have set. It does not (and cannot) change any existing record. You can only change an existing record using the update command.

Deleting rows

To delete a row from a table, use the delete command.

  1. Find the record you need to delete.
  2. Run writeMode to enable write mode.
  3. Run delete.
warning

If you do not select a record, the command deletes the last record in the table.

The example below deletes the last record in the TRADE table:

DbMon:TRADE>writeMode
DbMon:TRADE>delete
Are you sure you wish to execute the command? Y/N
y
Record deleted

deleteWhere

The deleteWhere command finds all records that match the specified criteria in the currently selected table, and deletes them. You are always prompted to confirm that you wish to execute the command.

  1. Find and select the required table or view.
  2. Enable writeMode.
  3. Run deleteWhere.

In the example below, the currently selected table is TRADE. We delete all records that have a QUANTITY value greater than 100.

DbMon:TRADE>writeMode
DbMon:TRADE>deleteWhere QUANTITY > 100
Are you sure you wish to execute the command? Y/N
y
Deleted record: DbRecord [tableName=TRADE] [PRICE = 9.0, SYMBOL = EUR, QUANTITY = 888, DIRECTION = BUY, TIMESTAMP = 2023-08-15 12:09:55.422(n:0,s:119) (7097187651224076407), TRADE_DATE = null, RECORD_ID = 7097187651224076407, COUNTERPARTY_ID = 3, TRADE_ID = 3aa96a32-0fdb-47e1-b96b-243dfa265e5cTRLO1, TRADE_STATUS = NEW, INSTRUMENT_ID = 1, ENTERED_BY = admin, ]
Deleted record: DbRecord [tableName=TRADE] [PRICE = 76.0, SYMBOL = EUR, QUANTITY = 888, DIRECTION = BUY, TIMESTAMP = 2023-08-15 12:09:52.163(n:0,s:116) (7097187637554839668), TRADE_DATE = null, RECORD_ID = 7097187637554839668, COUNTERPARTY_ID = 3, TRADE_ID = 0750ffa9-f080-4256-b0e4-efa0369d089cTRLO1, TRADE_STATUS = NEW, INSTRUMENT_ID = 1, ENTERED_BY = admin, ]
2 records deleted

Updating rows

The update command updates the specified fields in the selected row of the currently selected table. You must provide a key_name. You will always be prompted to confirm the update.

  1. Find and select the required table or view.
  2. Find and select the record that you want to update.
  3. Enable writeMode.
  4. Set the values of the required fields.
  5. Update.

In the example below, TRADE is the currently selected table. We use the set command to set the PRICE field to 50, and then update command to update the TRADE_BY_UPDATE_PRICE.

DbMon:TRADE>writeMode
DbMon:TRADE>set PRICE 50
DbMon:TRADE>update TRADE_BY_ID PRICE
Are you sure you wish to execute the command? Y/N
y
Record updated

UpdateWhere

Use the updateWhere command to update all records in the current table or view, which match specific criteria. You will always be prompted to confirm the update.

  1. Find and select the required table or view.
  2. Enable writeMode.
  3. Run updateWhere.

Here is an example of how to use updateWhere. In this example, we are updating the QUANTITY value to 10 for all records in TRADE with id = genesis1.

DbMon:TRADE>writeMode
DbMon:TRADE>updateWhere TRADE_ID=="genesis1" QUANTITY=10
Are you sure you wish to execute the command? Y/N
y
Updated record: DbRecord [tableName=TRADE] [PRICE = 90.0, SYMBOL = EUR, QUANTITY = 10, DIRECTION = BUY, TIMESTAMP = 2023-08-15 19:14:01.488(n:0,s:104) (7097294379760484456), TRADE_DATE = null, RECORD_ID = 7097293333759787097, COUNTERPARTY_ID = 1, TRADE_STATUS = NEW, TRADE_ID = genesis1, INSTRUMENT_ID = 1, ENTERED_BY = admin, ]
1 records updated

Copying a record

You can use DbMonto insert a copy of a record into the database, but note that:

  • You must unset any generated fields before proceeding; a generated field must always be unique.
  • You must unset any fields that are unique indices before proceeding; any field that is a unique index must contain a unique value.

To insert a copy of a record:

  1. Find the record that you want to copy. This is now the current record.
  2. Use unset to clear any generated fields or any field that is a unique index.
  3. writeMode.
  4. insert.

For example, the sequence of commands below finds a record in the COUNTERPARTY table, unsets the COUNTERPARTY_ID field, which is generated, and inserts a new record with all the other details identical. In this case, there are no fields that are unique indices.

DbMon>tables COUNTERPARTY
DbMon:COUNTERPARTY>search 1
DbMon:COUNTERPARTY>unset COUNTERPARTY_ID
DbMon:writeMode
DbMon:COUNTERPARTY>insert
Are you sure you wish to execute the command? Y/N
y
Record saved

Help

Once inside DbMon, you can run the command help to show all the available DbMon commands. To get help on a specific command, run the help _command_.

==================================
Help Menu
==================================
autoIncrementNumber <field_name>
clear
count
delete
deletelse <condition>
displayFields <field_names>
distinct <condition> [-where <limiting_condition>]
find <key_name>
first <key_name>
forceAutoIncrementNumber <field_name> <sequence_number>
forceSequenceNumber <sequence_name> <sequence_number>
h
insert
last <key_name>
listAll <key_name> <num_key_fields> <max_records>
next <key_name>
qsearch <condition> [-l <limit>]
qshow
search <condition> [-l <limit>]
sequenceNumber <sequence_name>
set <field_name> <field_value>
show
showKeys
showTables
showViews
table <table_name>
unset
update <key_name>
updateWhere <condition> <assignments>
view
writeMode

Quiet mode

DbMon --quietMode performs database changes without triggering real-time updates in the update queue layer.

DbMon commands

Here is a full list of DbMon commands and their arguments.

CommandArgumentDescription
autoIncrementNumber<field_name>displays the last generated autoIncrement number for the table or view
clearclear the current context
countcount the rows in the table/view
deletedelete the current row
deleteWhere<condition>delete all matching rows in the selected table
distinct<condition> [-where <limiting_condition>]show only distinct records
displayFields<field_names>display only selected columns
find<key_name>find a specific record in a index
forceAutoIncrementNumber<field_name> <sequence_number>
forceSequenceNumber<sequence_name> <sequence_number>
first<key_name>get the first record by key
helplist all commands
insertinsert a new record with the currently selected fields
last<key_name>get the last record by key
listAll<key_name> <num_key_fields> <max_records>
next<key_name>get the next record by key
qsearch<condition> [-l <limit>]
qshow
search<condition> [-l <limit>]return the records that match the criteria
set<field_name> <field_value>set a field
sequenceNumber<sequence_name>displays the last generated sequence number for the table or view
showdisplay the current record
showKeysdisplay all indexes
showTablesdisplay all tables in the schema
showViewsdisplay all views in the schema
table<table_name>select a specified table
unset<field>set a field to null
update<key_name> <fields>update the current row by key
updateWhere<condition> <assignments>update all records that matches a given condition
view<view_name>select a specified view
writeModeenable write mode