REPLACE [LOW_PRIORITY | DELAYED]
        [INTO] nome_tabela [(nome_coluna,...)]
        VALUES (expressão,...),(...),...
ou  REPLACE [LOW_PRIORITY | DELAYED]
        [INTO] nome_tabela [(nome_coluna,...)]
        SELECT ...
ou  REPLACE [LOW_PRIORITY | DELAYED]
        [INTO] nome_tabela
        SET nome_coluna=expressão, nome_coluna=expressão,...
        REPLACE funciona exatamente como o
        INSERT, exceto que se um registro antigo na
        tabela tem o mesmo valor que um novo registro em um índice
        UNIQUE ou PRIMARY KEY, o
        registro antigo é deletado antes que o novo registro seja
        inserido. See Secção 6.4.3, “Sintaxe INSERT”.
      
        Em outras palavras, você não pode acessar os valores do
        registro antigo em uma instrução REPLACE.
        Em algumas versões antigas do MySQL aparentemente você podia
        fazer isto, mas era um bug que já foi arrumado.
      
        Par aestar apto a utilizar REPLACE você deve
        ter privilégios INSERT e
        DELETE para a tabela.
      
        Quando você utilizar um comando REPLACE,
        mysql_affected_rows() retornará 2 se a nova
        linha substituir uma linha antiga. Isto é porque uma linha foi
        inserida depois que a linha duplicada foi deletada.
      
        Este fato torna fácil determinar se REPLACE
        adicionou ou subsitituiu uma linha: verifique se o valor de
        linhas afetadas é 1 (adicionado) ou 2 (substituido).
      
        Note que a menos que a tabela utilize índices
        UNIQUE ou PRIMARY KEY,
        utilizar um comando REPLACE replace não faz
        sentido. Ele se torna equivalente a um
        INSERT, porque não existe índice a ser
        usado para determinar se uma nova linha duplica outra.
      
        Seqgue aqui o algoritmo usado em mais detalhes: (Ele também é
        usado com LOAD DATA ... REPLACE.
      
- Insere a linha na tabela
  - Enquanto ocorrer erro de chave duplicada para chaves primária ou única
    - Reverte as chaves alteradas
    - Le as linha conflitantes da tabela através do valor da chave duplicada
    - Deleta as linhas conflitantes
    - Tenta inserir o chave primária e única original na árvore
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

