Clipper On Line • Ver Tópico - Atualizar usando VIEW
Mudar para estilo Clássico
Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.
Postar uma resposta

Atualizar usando VIEW

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

Atualizar usando VIEW

28 Ago 2019 18:33

Rodando desde ontem assim, e tudo certo, clientes atualizando.
Agora alterando o aplicativo para os nomes novos.

Atualizar usando VIEW

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.

Atualizar usando VIEW

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?

Atualizar usando VIEW

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.

Atualizar usando VIEW

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.
Postar uma resposta