CREATE COLLECTION
- reference
The CREATE COLLECTION
statement enables you to create a named collection within a scope.
Syntax
create-collection ::= 'CREATE' 'COLLECTION' ( ( namespace ':' )? bucket '.' scope '.' )?
collection ( 'IF' 'NOT' 'EXISTS' )?
- namespace
-
(Optional) An identifier that refers to the namespace of the bucket in which you want to create the collection. Currently, only the
default
namespace is available. If the namespace name is omitted, the default namespace in the current session is used. - bucket
-
(Optional) An identifier that refers to the bucket in which you want to create the collection.
- scope
-
(Optional) An identifier that refers to the scope in which you want to create the collection.
- collection
-
(Required) An identifier that refers to the name of the collection that you want to create. Refer to Naming for Scopes and Collections for restrictions on collection names.
If there is a hyphen (-) inside the bucket name, the scope name, or the collection name, you must wrap that part of the path in backticks (` `).
For example, default:`travel-sample` indicates the travel-sample keyspace in the default namespace.
|
Specifying the Location
To specify the location of the collection, you may do one of the following:
-
Include its full path, containing the namespace, bucket, and scope, followed by the collection name;
-
Include a relative path, containing just the bucket and scope, followed by the connection name;
-
Specify just the collection name without a path.
When you specify a collection name without a path, you must set the query context to indicate the required namespace, bucket, and scope. If you specify a collection name by itself without setting a valid query context, an error is generated.
IF NOT EXISTS Clause
The optional IF NOT EXISTS
clause enables the statement to complete successfully when the specified collection already exists.
If a collection with the same name already exists within the specified scope, then:
-
If this clause is not present, an error is generated.
-
If this clause is present, the statement does nothing and completes without error.
Usage
It is important to note that the scope must exist before you can create the collection, whether the scope is specified in the statement itself or implied by the query context. If the scope does not exist, an error is generated. You cannot create the scope and the collection in a single statement.
Examples
This statement creates a collection called city
in the inventory
scope within the travel-sample
bucket.
CREATE COLLECTION `travel-sample`.inventory.city
Query Context
For the following example, you must first set the query context to `travel-sample`.inventory
, using the Query Workbench or the cbq shell.
-
Query Workbench
-
CBQ Shell
Use the query context drop-down menu to select travel-sample.inventory
.
\SET -query_context travel-sample.inventory;
Assuming that the query context is set, this statement creates a collection called country
in the inventory
scope within the travel-sample
bucket.
CREATE COLLECTION country;
Related Links
-
An overview of scopes and collections is provided in Scopes and Collections.
-
Step-by-step procedures for management are provided in Manage Scopes and Collections.
-
Refer to Scopes and Collections API to manage scopes and collections with the REST API.
-
Refer to the reference page for the collection-manage command to manage scopes and collections with the CLI.