Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Relational Database Service/ Melhores práticas/ RDS for PostgreSQL/ Criação de bancos de dados/ Pergunta frequente/ Como criar um banco de dados usando uma interface de linha de comando (CLI)?
Atualizado em 2024-09-24 GMT+08:00

Como criar um banco de dados usando uma interface de linha de comando (CLI)?

Ao criar bancos de dados, você pode especificar um banco de dados de modelo e definir diferentes conjuntos de caracteres e agrupamentos para cada banco de dados.

Você pode se conectar à instância usando a janela de consulta do DAS, psql ou pgadmin. Esta seção usa a janela de consulta do DAS como um exemplo para descrever como criar um banco de dados usando o comando CREATE DATABASE.

As informações de agrupamento incluem LC_COLLATE e LC_CTYPE. Para mais detalhes, consulte a documentação oficial.

Sintaxe

CREATE DATABASE name [ [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ TABLESPACE [=] tablespace_name ] [ ALLOW_CONNECTIONS [=] allowconn ] [ CONNECTION LIMIT [=] connlimit ] [ IS_TEMPLATE [=] istemplate ] ]

Procedimento

  1. Faça logon no console de gerenciamento.
  2. Clique em no canto superior esquerdo e selecione uma região e um projeto.
  3. Clique em no canto superior esquerdo da página e escolha Databases > Relational Database Service.
  4. Na página Instances, localize a instância de BD de destino e clique em Log In na coluna Operation.

    Figura 1 Efetuar logon em uma instância

  5. Na página exibida, insira o nome de usuário e a senha e clique em Log In.
  6. Escolha SQL Operations > SQL Window.
  7. No console do DAS exibido, escolha SQL Operations > SQL Query. Execute o seguinte comando para criar um banco de dados:

    create database Database name;

Descrição do parâmetro

  • TEMPLATE

    O RDS for PostgreSQL tem dois modelos de banco de dados: template0 e template1. O modelo padrão é template1. Quando você usa template1 para criar um banco de dados, não especifique um novo conjunto de caracteres para o banco de dados. Caso contrário, um erro será relatado. Você também pode especificar um modelo personalizado para criar um banco de dados.

  • ENCODING

    Ao criar um banco de dados, você pode especificar um conjunto de caracteres usando WITH ENCODING. Para obter detalhes sobre os conjuntos de caracteres suportados, consulte a documentação oficial.

  • LC_COLLATE

    Ordem de classificação da cadeia de caracteres. O valor padrão é en_US.utf8.

    A comparação da mesma cadeia em diferentes agrupamentos pode ter resultados diferentes.

    Por exemplo, depois de executar SELECT 'a'>'A';, o resultado será false se esse parâmetro for definido como en_US.utf8 e o resultado será true se esse parâmetro for definido como C. Se você precisar migrar um banco de dados do Oracle para o RDS for PostgreSQL, defina LC_COLLATE como C. Você pode consultar os agrupamentos suportados na tabela pg_collation.

  • LC_CTYPE

    Ele é usado para classificar se um caractere é um dígito, letra maiúscula, letra minúscula e assim por diante. Você pode consultar as classificações de caracteres suportadas na tabela pg_collation.

  • Para obter detalhes sobre outros parâmetros, consulte a documentação oficial.

Como usar esses parâmetros

  • Usar TEMPLATE para especificar um modelo de banco de dados
    • Quando template1 é usado, o conjunto de caracteres ou agrupamento definido neste modelo não pode ser alterado. Para obter detalhes sobre agrupamentos, consulte Configuração do agrupamento de um banco de dados em uma localidade.
      CREATE DATABASE my_db WITH TEMPLATE template1 ;
    • Quando template0 é usado, você pode alterar o conjunto de caracteres e o agrupamento. Para obter detalhes, consulte Configuração do agrupamento de um banco de dados em uma localidade.
      CREATE DATABASE my_db WITH ENCODING = 'UTF8' LC_COLLATE ='zh_CN.utf8' LC_CTYPE ='zh_CN.utf8' TEMPLATE = template0 ;
    • Se nenhum modelo for especificado durante a criação do banco de dados, template1 será usado por padrão. Você também pode especificar um modelo personalizado para criar um banco de dados.
      CREATE DATABASE my_db WITH TEMPLATE = mytemplate;
  • Usar WITH ENCODING para especificar um conjunto de caracteres
    CREATE DATABASE my_db WITH ENCODING 'UTF8';
  • LC_COLLATE e LC_CTYPE
    • Consultar conjuntos de caracteres (codificações) suportados por LC_COLLATE e LC_CTYPE
      SELECT pg_encoding_to_char(collencoding) AS encoding,collname,collcollate AS "LC_COLLATE",collctype AS "LC_CTYPE" FROM pg_collation;

      Se encoding estiver vazia, LC_COLLATE suportará todos os conjuntos de caracteres.

    • Configurar o agrupamento de um banco de dados em um local

      Execute o seguinte comando para criar um banco de dados com LC_COLLATE e LC_CTYPE definidos como zh_CN.utf8:

      CREATE DATABASE my_db WITH ENCODING = 'UTF8' LC_COLLATE ='zh_CN.utf8' LC_CTYPE ='zh_CN.utf8' TEMPLATE = template0 ;

      Se LC_COLLATE especificado for incompatível com o conjunto de caracteres, informações de erro semelhantes às seguintes serão exibidas:

      1. Os LC_COLLATE e LC_CTYPE especificados devem ser compatíveis com o conjunto de caracteres de destino. Caso contrário, um erro é relatado. Para obter detalhes, consulte Consulta de configurações de LC_COLLATE e LC_CTYPE suportadas por um conjunto de caracteres.
      2. As configurações de LC_COLLATE e LC_CTYPE de um banco de dados existente não podem ser alteradas executando a instrução ALTER DATABASE. Você pode alterá-las ao criar um novo banco de dados e, em seguida, importar seus dados para o novo banco de dados.