Updated on 2025-08-20 GMT+08:00

Creating a Database

Function

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

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 Parameters

    Parameter

    Mandatory

    Description

    project_id

    Yes

    Definition

    Project ID of a tenant in a region.

    To obtain the value, see Obtaining a Project ID.

    Constraints

    N/A

    Range

    N/A

    Default Value

    N/A

    instance_id

    Yes

    Definition

    Instance ID.

    Constraints

    N/A

    Range

    N/A

    Default Value

    N/A

Request

Table 2 Parameters

Parameter

Mandatory

Type

Description

name

Yes

String

Definition

Specifies the database name.

Constraints

N/A

Range

The database name can contain 1 to 63 characters. Only letters, digits, and underscores (_) are allowed. It cannot start with pg or a digit and cannot be the same as RDS for PostgreSQL template database names.

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

Default Value

N/A

owner

No

String

Definition

Specifies the database owner.

Constraints

N/A

Range

It must be an existing user not named after any system user.

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

Default Value

root

template

No

String

Definition

Specifies the name of the database template.

Constraints

N/A

Range

The value can be template0 or template1.

Default Value

template1

character_set

No

String

Definition

Specifies the database character set.

Constraints

N/A

Range

N/A

Default Value

UTF8

lc_collate

No

String

Definition

Specifies the database collocation.

Constraints

Comparison of the same string in different collations may have different results.

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 Oracle to PostgreSQL, this parameter needs to be set to 'C' to meet your expectations. Collations supported by a database can be queried from system catalog pg_collation.

Range

N/A

Default Value

en_US.UTF-8

lc_ctype

No

String

Definition

Specifies the character classification.

Constraints

N/A

Range

N/A

Default Value

en_US.UTF-8

is_revoke_public_privilege

No

Boolean

Definition

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

Constraints

N/A

Range

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

Default Value

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

Example Request

Create 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 Parameters

    Parameter

    Type

    Description

    resp

    String

    Definition

    Calling result.

    Range

    Returns successful if the calling is successful.

Status Code

Error Code

For details, see Error Codes.