-
CRIAR PROCEDIMENTO
Crie um procedimento armazenado que armazene uma tabela em um banco de dados MySQL.
CRIAR FUNÇÃO
Crie uma função definida pelo usuário, especialmente um procedimento armazenado que retorne dados.
ALTERAR PROCEDIMENTO
As alterações em um procedimento armazenado pré-especificado criado com CREATE PROCEDURE não afetam os procedimentos armazenados relacionados ou a funcionalidade armazenada. .
ALTERAR FUNÇÃO
As alterações em um procedimento armazenado pré-especificado criado com CREATE FUNCTION não afetam os procedimentos armazenados ou funções armazenadas relacionadas. .
PROCEDIMENTO DE QUEDA
Exclua um ou mais procedimentos armazenados de uma tabela MySQL.
FUNÇÃO DE QUEDA
Exclua uma ou mais funções armazenadas de uma tabela MySQL.
MOSTRAR PROCEDIMENTO DE CRIAÇÃO
Retorna o texto de um procedimento armazenado pré-especificado criado usando CREATE PROCEDURE. Esta declaração é uma extensão do MySQL para a especificação SQL:2003.
MOSTRAR FUNÇÃO CRIAR
Retorna o texto de um procedimento armazenado pré-especificado criado usando CREATE FUNCTION. Esta declaração é uma extensão do MySQL para a especificação SQL:2003.
MOSTRAR STATUS DO PROCEDIMENTO
Retorna as características de um procedimento armazenado pré-especificado, incluindo nome, tipo, criador, data de criação e data de modificação. Esta declaração é uma extensão do MySQL para a especificação SQL:2003.
MOSTRAR STATUS DA FUNÇÃO
Retorna as características de uma função armazenada pré-especificada, incluindo nome, tipo, criador, data de criação e data de alteração. Esta declaração é uma extensão do MySQL para a especificação SQL:2003.
CHAMAR
Chame um procedimento armazenado pré-especificado criado usando CREATE PROCEDURE.
COMEÇO... FIM
Contém um conjunto de múltiplas instruções executadas.
DECLARAR
Usado para especificar variáveis locais, ambientes, processadores e ponteiros.
DEFINIR
Usado para alterar os valores das variáveis locais e globais do servidor.
SELECIONE ... EM
Coluna usada para armazenar variáveis de exibição.
ABRIR
Usado para abrir um ponteiro.
BUSCAR
Use um ponteiro específico para obter a próxima coluna.
FECHAR
Usado para fechar e abrir o ponteiro.
SE
Uma instrução if-then-else-end if.
CASO...QUANDO
A estrutura de uma declaração de caso
LAÇO
Uma estrutura de loop simples; pode ser encerrada usando a instrução LEAVE.
DEIXAR
Usado para sair das instruções IF, CASE, LOOP, REPEAT e WHILE.
ITERAR
Usado para reiniciar o ciclo.
REPITA
O loop é testado no final.
ENQUANTO
Um loop que é testado no início.
DEVOLUÇÕES
Retorna o valor de um procedimento armazenado.
MySQL 5.0 suporta instruções de procedimentos armazenados.
1. Crie um procedimento armazenado
1. Gramática básica:
criar procedimento sp_name()
começar
.........
fim
2. Passagem de parâmetros
2. Chame o procedimento armazenado
1.Sintaxe básica: chame sp_name()
Nota: Os parênteses devem ser adicionados após o nome do procedimento armazenado, mesmo que o procedimento armazenado não tenha parâmetros passados
3. Exclua procedimentos armazenados
1. Gramática básica:
descartar procedimento sp_name //
2. Precauções
(1) Você não pode excluir outro procedimento armazenado em um procedimento armazenado, você só pode chamar outro procedimento armazenado
4. Blocos, condições, loops
1. Definição de bloco, comumente usada
começar
...
fim;
Você também pode dar um alias ao bloco, como:
rótulo:início
...........
etiqueta final;
Você pode usar o rótulo leave para sair do bloco e executar o código após o bloco.
2. Declaração condicional
se condição então
declaração
outro
declaração
terminar se;
3. Instrução de loop
(1) loop while
[rótulo:] expressão WHILE DO
declarações
END WHILE [rótulo];
(2).loop loop
[rótulo:] LOOP
declarações
END LOOP [rótulo];
(3).repetir até loop
[rótulo:] REPETIR
declarações
Expressão ATÉ
END REPEAT [rótulo];
5. Outros comandos comumente usados
1.mostrar status do procedimento
Exibe as informações básicas de todos os procedimentos armazenados no banco de dados, incluindo o banco de dados ao qual pertence, o nome do procedimento armazenado, hora de criação, etc.
2.mostrar procedimento de criação sp_name
Sintaxe de criação de procedimento armazenado:
CREATE PROCEDURE nome_do_procedimento ([parâmetro[,...])
[IDIOMA SQL]
[ [NÃO] DETERMINÍSTICO]
[{CONTÉM SQL|MODIFICA DADOS SQL|LÊ DADOS SQL|SEM SQL}]
[SEGURANÇA SQL {DEFINER|INVOKER}]
[COMMENT comment_string]
instruções_procedimento
Você pode usar SHOW PROCEDURE STATUS ou SHOW CREATE PROCEDURE para visualizar informações de procedimentos armazenados. Além disso, a tabela do sistema INFORMATION_SCHEMA.ROUTINES também contém algumas informações sobre procedimentos armazenados. Da mesma forma, as funções também podem ser visualizadas da mesma maneira (SHOW FUNCTION STATUS).
Criação de funções
CRIAR FUNÇÃO nome_da_função (parâmetro[,...])
Tipo de dados RETURNS
[IDIOMA SQL]
[ [NÃO] DETERMINÍSTICO]
[ {CONTÉM SQL | SEM SQL | MODIFICA DADOS SQL |
[SEGURANÇA SQL {DEFINER|INVOKER}]
[COMMENT comment_string]
Corpo da declaração
As funções são basicamente iguais aos procedimentos armazenados. As principais diferenças são:
1. Para usar RETURNS para especificar o tipo de retorno
2. A função deve retornar um valor e usar RETURN no corpo da instrução (nota: use RETURNS para especificar o tipo de retorno e RETURN para o valor de retorno)
3. Os parâmetros não fazem distinção entre IN e OUT, todos são do tipo IN.
exemplo:
CRIAR FUNÇÃO cust_status(in_status CHAR(1))
RETORNA VARCHAR(20)
BEGIN DECLARE status_longo VARCHAR(20);
SE in_status="O" ENTÃO DEFINIR long_status="Atrasado";
ELSEIF in_status="U" THEN SET long_status="Atualizado";
ELSEIF in_status="N" THEN SET long_status="new";
TERMINAR SE;
RETURN(longo_status);
FIM;
Chamar:
SELECT cust_status('O');
acionar
CRIAR [DEFINER={usuário|CURRENT_USER}] TRIGGER nome_do_gatilho
{ANTES | DEPOIS} {ATUALIZAR | INSERIR | EXCLUIR}
ON nome_tabela
PARA CADA LINHA
instruções_de_gatilho
Significado: a operação da instrução trigger_statements é acionada antes (antes) ou depois (depois) das operações de atualização, inserção e exclusão serem executadas na tabela table_name.
exemplo:
mysql> CRIAR TRIGGER account_balance_au
APÓS A ATUALIZAÇÃO EM account_balance PARA CADA LINHA
COMEÇAR
DECLARE fictício INT;
SE NOVO.saldo<0 ENTÃO
SET NEW.balance=NULL;
TERMINAR SE;
FIM
O gatilho acima significa: após atualizar a tabela account_balance, se o valor atualizado balance for menor que 0, altere-o para NULL.
Nota: Se for OLD.balance, significa o valor original antes da atualização