Pular para o conteúdo

Marcado: , ,

  • Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 4 anos atrás por Avatar de José Laurindo ChiappaJosé Laurindo Chiappa.
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #145832
    Avatar de DanielDaniel
    Participante

      Olá amigos(as), Boa tarde!

      Estou precisando de uma ajuda de como criar uma programação php para atualizar um campo no perfil do usuário no meu website.

      create trigger trg_wallet before update
      on Wo_Users for each row
      set wallet = NEW.balance;

      O sistema já contabiliza no campo balance preciso que configure pra ter o mesmo valor no campo wallet também.

       

      Alguém sabe me ajudar nisso ?

       

      Fico agradecido desde já!

       

      Grato!

      Daniel

      #145833
      Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
      Moderador

        Blz ? Então, primeira coisa “programação php” falando de codificação interna no database Oracle ABSOLUTAMENTE NÃO FAZ SENTIDO : assim, vou SUPOR que na verdade foi um erro de DIGITAÇÃO e na verdade vc quis dizer PL/SQL (que é a linguagem procedural nativa do RDBMS ORACLE), não PHP….
        Muito bem : programando em PL/SQL uma idéia básica sim, seria criar um trigger : esse teu exemplo tá perto da sintaxe correta mas Não Chegou Lá… Supondo que a tabela se chama mesmo WO_USERS , a coluna a popular um valor nessa mesma tabela se chama WALLET e a coluna com a informação original se chama BALANCE, o comando ficaria :

        create trigger TRG_WALLET before update on WO_USERS for each row
        BEGIN
        :NEW.wallet := :NEW.balance;
        END;

        e é isso – dá uma estudada nos manuais de PL/SQL para ficar por dentro dos detalhes que adicionei, como o bloco BEGIN/END (sempre Obrigatório), o uso do ‘:=’ para atribuir um valor (e não o ‘=’ simples), o conceito de array de valores NEW e OLD com os valores a manipular na trigger….

        []s

        Chiappa

        OBS : nem preciso dizer, há dois pontos aí :

        a. este código acima (derivado do que vc escreveu) tá simplesmente COPIANDO O MESMO EXATO VALOR contido na coluna BALANCE para a coluna WALLET : ele funciona mas logicamente falando não faz muito sentido… Faria sentido se vc quisesse colocar na coluna WALLET o resultado de algum CÁLCULO que envolvesse a BALANCE….

        e

        b. dependendo da sua Exata versão/edition do RDBMS Oracle, há DIVERSAS maneiras de vc ter uma coluna calculada automaticamente pelo banco em cima de valores vindos de outras colunas – entre outras vc pode ter VIRTUAL COLUMNs OU pode ter Views Materializadas OU pode ter views simples que mostrem o resultado do cálculo que vc programou, etc….. Num sistema Produção eu Avaliaria essas outras coisas antes de apelar pra trigger….

      Visualizando 2 posts - 1 até 2 (de 2 do total)
      • Você deve fazer login para responder a este tópico.
      plugins premium WordPress