As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Convertendo o SQL servidor em My SQL
Para emular as funções SQL do banco de dados do Microsoft Server em seu Meu SQL código convertido, use o pacote de SQL extensão SQL Server to My em AWS SCT. Para obter mais informações sobre pacotes de extensão, consulte Usando pacotes de extensão com AWS Schema Conversion Tool.
Tópicos
Privilégios do My SQL como banco de dados de destino
Os privilégios necessários para My SQL como alvo são os seguintes:
CREATEEM * . *
ALTEREM * . *
DROPEM * . *
INDEXEM * . *
REFERENCESEM * . *
SELECTEM * . *
CREATEVIEWEM * . *
SHOWVIEWEM * . *
TRIGGEREM * . *
CREATEROUTINEEM * . *
ALTERROUTINEEM * . *
EXECUTEEM * . *
INSERT, UPDATE EM AWS _ SQLSERVER _EXT. *
INSERT,UPDATE, DELETE EM AWS _ SQLSERVER _ EXT _DATA. *
CREATETEMPORARYTABLESEM AWS _ SQLSERVER _ EXT _DATA. *
É possível utilizar o exemplo de código a seguir para criar um usuário do banco de dados e conceder os privilégios.
CREATE USER '
user_name
' IDENTIFIED BY 'your_password
'; GRANT CREATE ON *.* TO 'user_name
'; GRANT ALTER ON *.* TO 'user_name
'; GRANT DROP ON *.* TO 'user_name
'; GRANT INDEX ON *.* TO 'user_name
'; GRANT REFERENCES ON *.* TO 'user_name
'; GRANT SELECT ON *.* TO 'user_name
'; GRANT CREATE VIEW ON *.* TO 'user_name
'; GRANT SHOW VIEW ON *.* TO 'user_name
'; GRANT TRIGGER ON *.* TO 'user_name
'; GRANT CREATE ROUTINE ON *.* TO 'user_name
'; GRANT ALTER ROUTINE ON *.* TO 'user_name
'; GRANT EXECUTE ON *.* TO 'user_name
'; GRANT INSERT, UPDATE ON AWS_SQLSERVER_EXT.* TO 'user_name
'; GRANT INSERT, UPDATE, DELETE ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name
'; GRANT CREATE TEMPORARY TABLES ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name
';
No exemplo anterior, substitua user_name
com o nome do seu usuário. Em seguida, substitua your_password
com uma senha segura.
Se você usar o Meu SQL banco de dados versão 5.7 ou inferior como destino, execute o comando a seguir. Para Meus SQL bancos de dados versão 8.0 e superior, esse comando está obsoleto.
GRANT SELECT ON mysql.proc TO '
user_name
';
Para usar o Amazon RDS for My SQL ou o Aurora My SQL como destino, defina o lower_case_table_names
parâmetro como. 1
Esse valor significa que o Meu SQL servidor manipula identificadores de nomes de objetos, como tabelas, índices, acionadores e bancos de dados, sem distinção entre maiúsculas e minúsculas. Se você ativou o registro binário em sua instância de destino, defina o parâmetro log_bin_trust_function_creators
como 1
. Nesse caso, você não precisa usar as características DETERMINISTIC
, READS SQL DATA
ou NO SQL
para criar funções armazenadas. Para configurar esses parâmetros, crie um novo grupo de parâmetros de banco de dados ou modifique um grupo de parâmetros de banco de dados existente.
SQLConfigurações de SQL conversão do servidor para Minhas
Para editar SQL Servidor em Minhas configurações SQL de conversão, AWS SCT escolha Configurações e, em seguida, escolha Configurações de conversão. Na lista superior, escolha SQLServidor e, em seguida, escolha SQLServidor — Meu SQL. AWS SCT exibe todas as configurações disponíveis para a SQL conversão de SQL Servidor em Minha.
SQLAs configurações de SQL conversão de Servidor para Minhas AWS SCT incluem opções para o seguinte:
-
Para limitar o número de comentários com itens de ação no código convertido.
Em Adicionar comentários no código convertido para os itens de ação de severidade selecionada e superior, escolha a severidade dos itens de ação. AWS SCT adiciona comentários no código convertido para itens de ação da severidade selecionada e superior.
Por exemplo, para minimizar o número de comentários em seu código convertido, escolha Somente erros. Para incluir comentários para todos os itens de ação em seu código convertido, escolha Todas as mensagens.
-
Para permitir que seu banco de dados SQL do servidor de origem armazene a saída de
EXEC
em uma tabela. AWS SCT cria tabelas temporárias e um procedimento adicional para emular esse recurso. Para usar essa emulação, selecione Criar rotinas adicionais para lidar com conjuntos de dados abertos.
Considerações sobre a migração
Considere o seguinte ao migrar um esquema de SQL servidor para My: SQL
A minha SQL não apóia a
MERGE
declaração. No entanto, AWS SCT pode emular aMERGE
declaração durante a conversão usando aINSERT ON DUPLICATE KEY
cláusula e asUPDATE FROM and DELETE FROM
declarações.Para usar a emulação correta
INSERT ON DUPLICATE KEY
, certifique-se de que exista uma restrição exclusiva ou chave primária no Meu SQL banco de dados de destino.Uma instrução
GOTO
e um rótulo podem ser usados para alterar a ordem em que as instruções são executadas. Todas SQL as declarações Transact que seguem umaGOTO
declaração são ignoradas e o processamento continua no rótulo. As instruçõesGOTO
e os rótulos podem ser usados em qualquer lugar em um procedimento, lote ou bloco de instruções. Você também pode aninhar instruçõesGOTO
.O meu SQL não usa
GOTO
declarações. Quando AWS SCT converte o código que contém umaGOTO
instrução, ele converte a instrução para usar uma instruçãoBEGIN…END
ouLOOP…END LOOP
. Você pode encontrar exemplos de como AWS SCT converteGOTO
declarações na tabela a seguir.SQLDeclaração do servidor Minha SQL declaração BEGIN .... statement1; .... GOTO label1; statement2; .... label1: Statement3; .... END
BEGIN label1: BEGIN .... statement1; .... LEAVE label1; statement2; .... END; Statement3; .... END
BEGIN .... statement1; .... label1: statement2; .... GOTO label1; statement3; .... statement4; .... END
BEGIN .... statement1; .... label1: LOOP statement2; .... ITERATE label1; LEAVE label1; END LOOP; statement3; .... statement4; .... END
BEGIN .... statement1; .... label1: statement2; .... statement3; .... statement4; .... END
BEGIN .... statement1; .... label1: BEGIN statement2; .... statement3; .... statement4; .... END; END
My SQL não suporta funções com valor de tabela de várias instruções. AWS SCT simula funções com valor de tabela durante uma conversão criando tabelas temporárias e reescrevendo instruções para usar essas tabelas temporárias.