Clipper On Line • Ver Tópico - Atualizar usando VIEW

Atualizar usando VIEW

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Atualizar usando VIEW

Mensagempor JoséQuintas » 27 Ago 2019 04:20

Estou querendo renomear tabelas no MySQL, mas tem a fase intermediária.
Fiz um teste e deu certo, mas... é seguro usar VIEW pra atualizar tabela?

CREATE VIEW nomevelho AS SELECT * from nomenovo

A intenção é poder atualizar usando tanto o nomevelho quanto o nomenovo.

INSERT INTO nomevelho ...
INSERT INTO nomenovo ...
UPDATE nomevelho ...
UPDATE nomenovo ....
SELECT * FROM nomevelho
SELECT * FROM nomenovo
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11774
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 753 vezes

Atualizar usando VIEW

Mensagempor JoséQuintas » 28 Ago 2019 18:33

Rodando desde ontem assim, e tudo certo, clientes atualizando.
Agora alterando o aplicativo para os nomes novos.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11774
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 753 vezes

Atualizar usando VIEW

Mensagempor JoséQuintas » 28 Ago 2019 21:07

Aproveitando....
Tem esse lado do MySQL: você praticamente escolhe a estrutura, não importa a original.
Da mesma forma que seu aplicativo pode usar informações de outro sistema, o contrário também é válido.

Você tem um relatório que foi feito pra determinada estrutura....
Pode criar um VIEW que transforma os dados existentes na estrutura que seu relatório precisa.
Assim como outros podem usar as informações do seu aplicativo....

Interessante né...

Nota: aprendi a usar o VIEW ontem... ontem entrou em uso, e hoje tá a plena carga... todos os clientes fazem uso da minha base.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11774
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 753 vezes

Atualizar usando VIEW

Mensagempor janio » 30 Ago 2019 13:13

A VIEW (visão) eh como se fosse uma tabela temporária? Mesmo apagando a tabela original, os dados continuam na VIEW?
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1820
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 7 vezes
Mens.Curtidas: 59 vezes

Atualizar usando VIEW

Mensagempor JoséQuintas » 30 Ago 2019 14:12

janio escreveu:A VIEW (visão) eh como se fosse uma tabela temporária?
Mesmo apagando a tabela original, os dados continuam na VIEW?


NÃO.
A VIEW é justamente isso: uma visão.
NÃO tem informação nenhuma, no backup trata-se apenas do comando e nada mais.

Por isso eu já renomeei tudo para o nome novo, que contém os dados.
O VIEW apenas vai ficar fornecendo o nome velho.
Depois vai ser só apagar esse nome velho, esse VIEW.

Dá pra criar um VIEW para os GRIDS/TBrowse do aplicativo, ou até relatórios, por exemplo, ao invés de indicar no programa.

SELECT * FROM VIEWRELATORIOESTOQUE

Ou usar um aplicativo que foi feito para uma base de dados com determinada estrutura usando outra estrutura, apenas configurando no servidor.

Lembrando:

Sou principiante, conforme vou precisando procuro pra ver se tem alguma coisa.

Há mais de 10 anos comecei salvando XMLs no MySQL, nos tempos do Clipper, e usando Visual Basic 6.
Há uns 5 anos comecei salvando o log de uso, porque é grande, usa o tempo todo, e só faz gravação.
Depois fui passando outros, com uso mais eventual, sempre acompanhando o resultado.
Hoje meu aplicativo é híbrido, em TODOS os clientes, usando DBF + MySQL, e até hbnetio num deles.
Se altero o fonte agora, assim que o cliente atualizar versão vai estar rodando na máquina/rede dele.
NÃO vou no cliente ver se a atualização funcionou, se converteu direito de dbf pra MYSQL... essa fase já passou.
É o cliente atualizar, se o arquivo agora é no MySQL, então o aplicativo faz tudo que precisa.

Tem muita coisa que ainda não sei, por exemplo o acesso simultâneo pesado.
Mas o que vou precisando/aprendendo, faço testes pra ver se tudo ok, e já vai direto pra uso na prática.

MySQL tem muuuito recurso, se eu for esperar aprender todos, não usaria nunca.
Então é aprender e usar.
NUNCA deu problema, talvez por eu fazer muitos testes antes de colocar pra valer, e de primeiro preparar rotinas de backup/segurança, e já nem lembro que tipo de problema pode ter acontecido no passado.
Tipo... só salvei no MySQL e no dia seguinte olhava no backup recebido se tava tudo certo antes de usar o MySQL e apagar o DBF... esse tipo de coisa.
Então não considerava como problema algo errado naquela etapa, porque era só fazer de novo.

Então não sou expert, apenas vou usando o que vou aprendendo ou que funciona.
Essa opção do VIEW foi novidade, imaginei que existia alguma opção pra isso e encontrei o VIEW, deu certo, e passei a usar.

Normalmente o pessoal quer converter o aplicativo inteiro, tem problemas, e acaba nunca usando, perde até os fontes por falta de atualização.
Eu vou fazendo aos poucos, pode demorar mais, mas tá sempre em frente.
E agora SEM IFs alternativos... ou é DBF ou é MYSQL, salvo algumas poucas exceções.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 11774
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 12 vezes
Mens.Curtidas: 753 vezes

Atualizar usando VIEW

Mensagempor alxsts » 31 Ago 2019 11:48

Olá!
JoséQuintas escreveu:A VIEW é justamente isso: uma visão.
NÃO tem informação nenhuma,

As views tradicionais são exatamente assim. Não contém dados mas apenas os comandos para recuperar dados de uma ou mais tabelas (usando joins). São práticas e ficam armazenadas no banco de dados, já "compiladas", assim como as stored procedures. Desta forma, quando invocadas, não é preciso verificar sintaxe ou definir o melhor plano de execução.

Apesar destas características, dependendo da situação e volume de dados, estas views não tem a performance desejada. Para contornar o problema, os principais gerenciadores de bancos de dados oferecem views que gravam dados. Em Oracle, MySql e PostgreSQL são conhecidas como Materialized Views. Já no MS SQL Server, são as Indexed Views. O ganho de performance é significativo.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2190
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 13 vezes
Mens.Curtidas: 151 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro