Switch to: V12V11V10V9V8V7V6V5

CREATE KEYVALUE

Defines a new KeyValue and prepares it for the receiving data.

Syntax

--
-- to create default KeyValue:
--
keyvalue_definition
    :    CREATE [OR REPLACE] [TEMPORARY] [RAM] [COMPRESSED] 
         KEYVALUE [IF NOT EXISTS] keyvalue_name
--
-- to create KeyValue WITH KEY
--
keyvalue_definition
    :    CREATE [OR REPLACE] [TEMPORARY] [RAM] [COMPRESSED]
         KEYVALUE [IF NOT EXISTS] keyvalue_name
         WITH KEY ( vext_key_parts )
 
vext_key_parts
    :    vext_key_part, ...
 
vext_key_part
    :    BYTE | SHORT | USHORT | LONG | ULONG | LLONG | ULLONG | VARBINARY | VARCHAR
--
-- to create a specialized KeyValue: FOR TABLE, FOR LINK, FOR TABLES
--
keyvalue_definition
    :    CREATE [OR REPLACE] [TEMPORARY] [RAM] [COMPRESSED]
         KEYVALUE [IF NOT EXISTS] keyvalue_name
         { FOR TABLES
         | FOR TABLE TABLE_NAME
         | FOR LINK link_name 
         }

ARGUMENTS

OR REPLACE

This clause forces dropping of an existed keyvalue with the specified name and creates new empty keyvalue as specified. So effectively this is the same as

DROP KEYVALUE T;
CREATE KEYVALUE T ....

NOTE: 'OR REPLACE' syntax Valentina have taken from Oracle/Postgre world.

TEMPORARY

If specified then KeyValue will be created as Temporary Database Object, i.e. files are stored on .tmp volume, and information about this object is not saved into the schema.

RAM

If specified then KeyValue creates own files as ram-files, not touching the disk.

COMPRESSED

If specified then KeyValue uses compression for big values, which are going into underline Segment File, similar to BLOB field. It should notice that picture values are not compressed.

IF NOT EXISTS

The IF NOT EXISTS option allows you to suppress the error message in case if such keyvalue already exists. This makes it much easier to perform SQL dumps without interruption.

NOTE: 'IF NOT EXISTS' syntax Valentina have taken from MySQL world.

keyvalue_name

Specifies the name of new keyvalue. The keyvalue object belongs to the database. Keyvalue objects share the same namespace within a database.

WITH KEY

This form allows you to create a special KeyValue WITH KEY. You should specify the KEY structure using a comma-separated list of allowed types.

FOR TABLE

This form allows you to create a special KeyValue FOR TABLE. In this case, you should also specify the name of Table.

This form allows you to create a special KeyValue FOR LINK. In this case, you should also specify the name of Link.

FOR TABLES

This form allows you to create a special KeyValue FOR TABLES.

Examples

Default KeyValue

CREATE KEYVALUE kvProperties;
CREATE KEYVALUE TEMPORARY kvProperties;

KeyValue With KEY

CREATE KEYVALUE kvProperties FOR TABLE T1

Default KeyValue

CREATE KEYVALUE kvProperties FOR TABLE T1