Updated on 2023-11-20 GMT+08:00

Creating a Database

Function

This API is used to create a database in a specified DB instance.

  • Before calling an API, you need to understand the API in Authentication.

Constraints

  • This operation cannot be performed when the DB instance is in any of the following statuses: creating, changing instance class, changing port, frozen, or abnormal.
  • If you create a database using other methods instead of invoking a v3 API, for example, logging in to a node or using a client tool, the database name verification rule is inconsistent with that of the v3 API. As a result, the v3 API may fail to be invoked to perform operations on the database.

URI

  • URI format

    POST /v3/{project_id}/instances/{instance_id}/database

  • Parameter description
    Table 1 Parameter description

    Name

    Mandatory

    Description

    project_id

    Yes

    Specifies the project ID of a tenant in a region.

    For details about how to obtain the project ID, see Obtaining a Project ID.

    instance_id

    Yes

    Specifies the DB instance ID.

Request

Parameter description
Table 2 Parameter description

Name

Mandatory

Type

Description

name

Yes

String

Specifies the database name.

The value contains 1 to 63 characters, including letters, digits, and underscores (_). It cannot start with pg or a digit, and must be different from RDS for PostgreSQL template library names.

RDS for PostgreSQL template libraries include postgres, template0, and template1.

owner

No

String

Specifies the database user. The default value is root. The value must be an existing username and must be different from system usernames.

System users include rdsAdmin, rdsMetric, rdsBackup, rdsRepl, rdsProxy, and rdsDdm.

template

No

String

Specifies the name of the database template. The value can be template0 or template1 (default value).

character_set

No

String

Specifies the database character set. The default value is UTF8.

lc_collate

No

String

Specifies the database collocation. The default value is en_US.UTF-8.

NOTICE:

For different collation rules, the execution result of a statement may be different.

For example, the execution result of select 'a'>'A'; is false when this parameter is set to en_US.utf8 and is true when this parameter is set to 'C'. If a database is migrated from "O" to PostgreSQL, this parameter needs to be set to 'C' to meet your expectations. You can query the supported collation rules from the pg_collation table.

lc_ctype

No

String

Specifies the database classification. The default value is en_US.UTF-8.

is_revoke_public_privilege

No

Boolean

Specifies whether to revoke the PUBLIC CREATE permission of the public schema.

  • true: indicates that the permission will be revoked.
  • false: indicates that the permission will not be revoked.

If this parameter is not specified, the default value is false.

Example Request

Creating a database named rds_test

POST https://{endpoint}/v3/0483b6b16e954cb88930a360d2c4e663/instances/f569f1358436479dbcba8603c32cc4aein03/database

{
    "name": "rds_test",
    "owner": "test",
    "template": "template0",
    "character_set": "UTF8",
    "lc_collate": "en_US.UTF-8",
    "lc_ctype": "en_US.UTF-8",
    "is_revoke_public_privilege": true
}

Response

  • Normal response
    Table 3 Parameter description

    Name

    Type

    Description

    resp

    String

    Returns successful if the invoking is successful.

Status Code

Error Code

For details, see Error Codes.