CREATETRIGGER

nome

O nome para dar o novo gatilho. Este deve ser diferente do nome de qualquer outro gatilho para a mesma tabela. O nome não pode ser qualificado para esquema – o gatilho herda o esquema da sua tabela. Para um trigger de restrição, este também é o nome a ser usado ao modificar o comportamento do trigger usando SET CONSTRAINTS.

BEFORE
AFTER
INSTEAD OF

Determina se a função é chamada antes, depois, ou em vez do evento. Um trigger de restrição só pode ser especificado como AFTER.

event

One of INSERT, UPDATE, DELETE, ou TRUNCATE; isto especifica o evento que irá disparar o trigger. Vários eventos podem ser especificados usando OR.

Para eventos UPDATE, é possível especificar uma lista de colunas usando esta sintaxe:

UPDATE OF column_name1 

O gatilho só disparará se pelo menos uma das colunas listadas for mencionada como um alvo do comando UPDATE.

INSTEAD OF UPDATE events do not support lists of columns.

table

The name (optionally schema-qualified) of the table or view the trigger is for.

referenced_table_name

The (possibly schema-qualified) name of another table referenced by the constraint. Essa opção é usada para restrições de chave estrangeira e não é recomendada para uso geral. Isso só pode ser especificado para as restrições de acionamento.

DEFERIRÁVEL
NÃO DEFERIRÁVEL
INICIALMENTE IMEDIATO
INICIALMENTE DEFERIDO

O tempo padrão do acionamento. Consulte a documentação CREATE TABLE para obter detalhes sobre essas opções de restrição. Isto só pode ser especificado para os triggers de restrição.

PARA CADA ROW
PARA CADA DECLARAÇÃO

O que especifica se o procedimento de trigger deve ser disparado uma vez para cada linha afetada pelo evento de trigger, ou apenas uma vez por instrução SQL. Se nenhuma das duas for especificada, FOR EACH ESTATEMENT é o padrão. Os gatilhos de restrição só podem ser especificados PARA CADA ROW.

condição

Uma expressão booleana que determina se a função de gatilho será realmente executada. Se quando for especificada, a função só será chamada se a condição retornar verdadeira. Em FOR EACH ROW triggers, a condição WHEN pode se referir a colunas dos antigos e/ou novos valores de linha escrevendo OLD.column_name ou NEW.column_name respectivamente. Naturalmente, os acionadores INSERT não podem fazer referência a OLD e DELETE não podem fazer referência a NEW.

INSTEAD OF triggers não suportam quando as condições.

Currentemente, quando as expressões WHEN não podem conter subqueries.

Nota que, para os acionadores de restrição, a avaliação da condição WHEN não é diferida, mas ocorre imediatamente após a execução da operação de atualização de linha. Se a condição não for avaliada como verdadeira, o acionador não é enfileirado para execução diferida.

nome_da_função

Uma função fornecida pelo usuário que é declarada como não aceitando argumentos e retornando o tipo de acionador, que é executado quando o acionador dispara.

argumentos

Uma lista opcional de argumentos separados por vírgula a ser fornecida à função quando o acionador é executado. Os argumentos são constantes literais de string. Nomes simples e constantes numéricas também podem ser escritos aqui, mas todos eles serão convertidos em strings. Por favor verifique a descrição da linguagem de implementação da função trigger para descobrir como estes argumentos podem ser acessados dentro da função; pode ser diferente dos argumentos normais da função.

Deixe uma resposta

O seu endereço de email não será publicado.