"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Guia de migração de MySQL para GBase

Guia de migração de MySQL para GBase

Publicado em 17/08/2024
Navegar:215

MySQL to GBase Migration Guide

Este artigo fornece um guia rápido para migrar sistemas de aplicativos baseados em bancos de dados MySQL para bancos de dados GBase (GBase 8c). Para obter informações detalhadas sobre aspectos específicos de ambos os bancos de dados, os leitores podem consultar a documentação oficial do MySQL (https://dev.mysql.com/doc/) e o manual do usuário GBase 8c. Devido ao extenso conteúdo envolvido no mapeamento básico dos tipos de dados MySQL e outros aspectos do processo de migração, isso não será abordado em detalhes neste artigo. Se estiver interessado, deixe um comentário e podemos discutir isso na próxima vez.

1. Criando um banco de dados

No MySQL e no GBase 8c, a instrução CREATE DATABASE é usada para criar um banco de dados. As diferenças de sintaxe específicas são as seguintes:

Operação Instrução MySQL SQL Instrução SQL GBase 8c
CRIAR BANCO DE DADOS CREATE DATABASE exemplo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE exemplo OWNER gbase ENCODING ‘UTF8’ LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';

Considerações sobre migração de instruções SQL para criação de bancos de dados:

(1) Tanto no MySQL quanto no GBase 8c, você pode especificar o conjunto de caracteres e as regras de agrupamento ao criar um banco de dados.

Ao contrário do MySQL, no GBase 8c, a palavra-chave ENCODING é usada para especificar o conjunto de caracteres, e as palavras-chave LC_COLLATE e LC_CTYPE são usadas para especificar regras de agrupamento:

  • LC_COLLATE: Este parâmetro afeta a ordem de classificação das strings (por exemplo, ao usar ORDER BY, bem como a ordem dos índices nas colunas de texto).

  • LC_CTYPE: este parâmetro afeta a classificação de caracteres, como maiúsculas, minúsculas e dígitos.

(2) Ao criar um banco de dados no GBase 8c, você também pode especificar atributos adicionais exclusivos. Atributos comuns incluem:

  • OWNER: Este parâmetro especifica o proprietário do banco de dados. Se não for especificado, o proprietário usará como padrão o usuário atual.

  • CONNECTION LIMIT: Este parâmetro especifica o número de conexões simultâneas que o banco de dados pode aceitar. Os administradores do sistema não estão sujeitos a este limite.

(3) Estrutura do banco de dados

No MySQL, banco de dados e esquema são sinônimos e os bancos de dados podem fazer referência um ao outro. No GBase 8c, banco de dados e esquema são objetos distintos. Um único banco de dados pode conter vários esquemas, e os bancos de dados não podem fazer referência uns aos outros, mas os esquemas dentro do mesmo banco de dados podem.

2. Usando o banco de dados

Comparação de várias instruções SQL para operar o banco de dados:

Operação Instrução MySQL SQL Instrução SQL GBase 8c Ferramenta GBase 8c gsql
Ver bancos de dados MOSTRAR BANCOS DE DADOS; ou exemplo SHOW DATABASE; SELECIONE * FROM pg_database; \l ou \l
Alternar banco de dados USE exemplo; Reconecte ao switch, esta função não usa SQL para alternar \c exemplo
Excluir banco de dados Exemplo DROP DATABASE; Exemplo DROP DATABASE; Nenhum

3. Criando Tabelas

Tanto o MySQL quanto o GBase 8c suportam a criação de tabelas usando a instrução CREATE TABLE. As diferenças de sintaxe específicas são as seguintes:

Operação Instrução MySQL SQL Instrução SQL GBase 8c
Criando tabelas usando CREATE TABLE CREATE TABLE `minha_tabela` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'id',
`user_id` int NOT NULL COMMENT 'ID do usuário',
`nome` varchar(50) DEFAULT NULL COMMENT 'Nome',
`endereço` varchar(50) DEFAULT NULL COMMENT 'Endereço',
`senha` varchar(20) DEFAULT 'senha' COMMENT 'Senha',
CHAVE PRIMÁRIA (`id `)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE "minha_tabela" (
"id" SERIAL NOT NULL,
"user_id" int NOT NULL,
"nome" varchar(50),
"endereço" varchar(50) ,
"passwd" varchar(20) DEFAULT 'password',
CONSTRAINT "my_table_pkey" PRIMARY KEY ("id")
);

COLUMN ON COLUMN "my_table"."id " IS 'id';
COMMENT ON COLUMN "my_table"."user_id" IS 'User id';
COMMENT ON COLUMN "my_table"."name" IS 'Name';
COMMENT ON COLUMN " minha_tabela"."endereço" IS 'Endereço';
COMENTÁRIO NA COLUNA "minha_tabela"."passwd" IS 'Senha';
Criando tabelas usando CREATE TABLE ... LIKE criar tabela `my_table_like` como `my_table`; criar tabela my_table_like (como my_table);
Criando tabelas usando CREATE TABLE ... AS crie a tabela `my_table_as` como select * from `my_table`; criar tabela my_table_as como select * from my_table ;

Ao migrar instruções SQL para criar tabelas, as seguintes alterações de sintaxe são necessárias:

(1) Regras de nomenclatura e distinção entre maiúsculas e minúsculas
No MySQL, os nomes de banco de dados, tabelas e campos são colocados entre crases (``) para marcação. Isso não é permitido no GBase 8c; em vez disso, GBase 8c usa aspas duplas ou nenhuma marca.

No GBase 8c, se os nomes de tabelas e campos não estiverem entre aspas duplas, eles serão automaticamente convertidos para letras minúsculas quando a tabela for criada. Se precisar especificar nomes em letras maiúsculas, você deverá colocá-los entre aspas duplas.

(2) Alterações relacionadas ao mecanismo de armazenamento

  • Ao migrar para GBase 8c, você precisa remover cláusulas relacionadas ao mecanismo de armazenamento, como ENGINE e TYPE, das instruções MySQL.

  • GBase 8c não suporta a configuração de conjuntos de caracteres no nível da tabela, portanto, as cláusulas CHARSET nas instruções MySQL devem ser removidas ao migrar para o GBase 8c.

(3) CRIAR TABELA COMO\AS
GBase 8c também suporta a sintaxe CREATE TABLE LIKE\AS, mas o uso da cláusula LIKE difere do MySQL. No GBase 8c, a cláusula LIKE deve ser colocada entre "()" e não copia automaticamente as anotações COMMENT das colunas originais da tabela.

4. Declarações relacionadas à visualização

Tanto MySQL quanto GBase 8c suportam visualizações, e o método básico de criação é semelhante. No entanto, é importante observar que no GBase 8c, sob a regra padrão, a modificação direta de dados em uma visualização não é suportada.

Operação Instrução MySQL SQL Instrução SQL GBase 8c
Criando uma visualização CREATE VIEW v_my_table AS SELECT * FROM my_table; CREATE VIEW v_my_table AS SELECT * FROM my_table;
Modificação de dados por meio de uma visualização INSERT INTO v_my_table(user_id, nome, endereço) VALUES(2222, 'bbb', 'xxxx'); Compatível, mas requer ajuste da RULE padrão
Descartando uma visualização DROP VIEW v_minha_tabela; DROP VIEW v_minha_tabela;

5. Declarações relacionadas ao índice

Tanto o MySQL quanto o GBase 8c suportam a funcionalidade de indexação, mas há pequenas diferenças nas operações de criação e exclusão. As diferenças básicas de sintaxe são as seguintes:

Operação Instrução MySQL SQL Instrução SQL GBase 8c
Criando Índice CRIAR ÍNDICE i_user_id USANDO BTREE ON my_table (user_id);
ou
CRIAR ÍNDICE i_user_id ON my_table (user_id) USANDO BTREE;
CRIAR ÍNDICE i_user_id EM minha_tabela USANDO BTREE (user_id);
Diminuição do índice DROP INDEX i_user_id ON minha_tabela; DROP INDEX i_user_id;

Pontos de atenção para migração de instruções de criação e exclusão de índices:

(1) Posição de USING index_type
No MySQL, a cláusula USING index_type pode aparecer antes ou depois da cláusula table_name(col_name), conforme mostrado:

... USANDO index_type nome_tabela(nome_coluna) ...

OU

... nome_tabela(nome_coluna) USANDO index_type ...

No entanto, no GBase 8c, a cláusula USING index_type deve ser colocada no meio da cláusula table_name(col_name):

... nome_tabela USANDO tipo_índice (nome_coluna) ...

(2) DROP INDEX ON tabela
No GBase 8c, ao excluir um objeto de índice, você não precisa especificar a cláusula ON da tabela. Esta cláusula deve ser removida durante a migração.

(3) Outras propriedades
GBase 8c não suporta propriedades FULLTEXT e SPATIAL ao criar objetos de índice. Essas propriedades precisam ser removidas durante a migração.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/congcong/mysql-to-gbase-8c-migration-guide-31ch?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3