-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Que tipo de engine você está usando? Se está usando o engine InnoDB e montou as contraints corretamente com ON DELETE CASCADE, então basta deletar o registro da tabela t1 que os outros serão deletados automaticamente. Senão está usando o engine InnoDB ou se está mas não montou as contraints corretamente, você terá que dividir seu delete em três comandos distintos para não haver problema. Primeiro tratando de t3, depois tratando de t2 e depois, tratando de t1.
-
(Resolvido) Ajuda com a função update + replace
pergunta respondeu ao fatherofpain de Denis Courcy em MySQL
Experimente SET post = REPLACE(post, '\"', "\'"); -
Voce está usando o mysql.exe ou equivalente em linux. use CLEAR ou, se não der certo, use o HELP para saber qual o comando.
-
Não. O que é possível é replicar os dados do banco que tem integridade para o que não tem.
-
Apagar que tela? MySQL não tem tela. É um banco de dados.
-
Oi, Carlos! Desculpe por não ter respondido antes. Estou tremendamente atarefado no trabalho e tenho respondido a perguntas simples com repostas simples. Seu caso é um pouco mais complicado. Como mencionei no post anterior, fiz modelo das tabelas e ligações que você passou. está em anexo.(usuarioperfilacesso_modelocarlos.pdf) Porém, achei seu método um tanto complicado. Como gosto de coisas simples e práticas (a manutenção futura é muito mais fácil) desenhei um outro modelo que exponho a seguir e que está no anexo(01_Segurançaa_e_Acesso_Log_v2.pdf): 1. Cadastrar os Ítens de menu de acesso que serão controlados 2. Cadastrar os Perfís de acesso, estabelecendo a ligação com os menus de acess e classificando os tipos de direitos de acesso que serão permitidos (inclusão, alteração exclusão). O modo "Somente Consulta" existe quando há um registro contendo o ítem de menu mas os direitos de acesso estão marcados como "Não". 3. Cadastrar o usuário e informar o tipo de perfil que ele terá acesso. De acordo com o projeto (que eu uso em meu sistema) o usuário tem um perfil obrigatório e pode ter ter mais um (opcional) que possibilita uma extensão de suas atividades habituais ora desempenhadas. No cadastro de usuário existem dois indicadores. O indicador de supervisão, por default é marcado como "Não", informa que este usuário é um supervisor de caixa e que tem direito a confirmar "assinar" as seguintes operações: abertura de caixa, fechamento de caixa, sangria e devolução (extorno). O indicador de Habilitação, por default é marcado como "Sim", informa se o usuário está habilitado a operar o sistema. Por motivo de audotoria, o usuártio só pode ser excluido se não houver transação no log de operações do mesmo. Então, quando já existe operação para este usuário e necessito excluir este usuário, em vez de excluí-lo, eu marco este indicador como "Não". Espero que goste e que isto de ajude. Qualquer coisa é só perguntar novamente. usuarioperfilacesso_modelocarlos.pdf 01_Seguran_a_e_Acesso_Log_v2.pdf
-
Denis, tudo bem. Dei este comando UPDATE phoenix.oserv SET data = STR_TO_DATE(CONCAT("2008", SUBSTRING(DATE_FORMAT(data, "%y-%m-%d"), 5, 6)), "%y-%m-%d"); e recebi este erro Incorrect datetime value: '20086-03' for function str_to_time erro 1411 Esta correto o comando ? Este comando irá alterar só os lançamentos que estão com 0008, pois tenho mais lançamentos na tabela. Abraço Valdecir Ajuste os valores (5 e 6) na substring para obter a posição correta. A query não está buscando o ano com 4 posições. O substring deverá buscar a posição -mm-dd que equivale ao mes e dia. Exemplo se data = '0008-06-01' (1 Junho ano 8) então o substring tem que retornar a string "-06-01". Ver instruções sobre a função substring no manual do MySQL neste link
-
Manuais e Banco para Baixar Manual Versão 4.1 OnLine em português Manual Versão 4.1 OnLine em Inglês Manual Versão 5.0 OnLine em Inglês Manuais: Versões para Download http://dev.mysql.com/doc/ Download do banco de dados
-
Oi, Valdecir! experimente este artifício: UPDATE tabela SET campo = STR_TO_DATE(CONCAT("2008", SUBSTRING(DATE_FORMAT(campo, "%y-%m-%d"), 5, 6)), "%y-%m-%d");
-
(Resolvido) Ajuda com a função update + replace
pergunta respondeu ao fatherofpain de Denis Courcy em MySQL
Pois é Denis Courcy, esqueci que ainda estes dias você já tinha falado algo sobre estas barras em funções. :blush: Eu entendi que ele queria apenas substituir um texto pelo outro e que o caracter especial que aparece no meio dele não seria levado em conta pela função, porque em termos de atribuição direta do texto a um campo, não há este tipo de problema (não com a versão 5 que tenho instalada). Descupe aí, fatherofpain Abraços Oi, Micheus! Realmente não há problema quando se usa " ' " para simbolizar a aspa simples, como no exemplo(ou outro caracter especial), como caracter e um texto. Mas quando há a necessidade de substituir um caracter apenas, dentro de um texto, a melhor forma é o uso de caracteres especiais. Ver manual do mysql edição em inglês versão 5.0 Chapter 9. Language Structure 9.1. Literal Values. -
A versão 5.1 do Mysql vem equipada com schedule. Neste caso você teria que criar uma stored procedure e colocá-la no schedule. Se você usa uma versão do MySQL anterior a 5.1, então a solução é criar uma rotina de programação, em uma linguagem qualquer, e executá-la através de um serviço de schedule do seu sistema operacional, tal como o cron no linux ou o utilitário de tarefas agendadas do windows XP.
-
Esta foi a idéia. Já que o que você passou foi a idéia de um DEMO então a tabela exeiste apenas durante aquela conexão e somente para um usuário. Outro usuário em outra conexão terá a mesma tabela com outro nome fazendo a bagunça que quizer durante o tempo da conexão deste.
-
(Resolvido) Ajuda com a função update + replace
pergunta respondeu ao fatherofpain de Denis Courcy em MySQL
Oi, 'fatherofpain' ! Para substituir caracteres especiais (no caso aspas simples e aspas duplas no mysql você deve utilizar da seguinte maneira: UPDATE cgd_post SET post = REPLACE(post, \", \'); [/sq] Ver manual do mysql versão 4.1 tradução em portugês capítulo 6) -
Oi, Hermogenes! Não há problema de usar o MySQL para fazer DataWarehouse (DW). O problema é como fazer o DW sem perder desempenho. O DW exige que você modele até a 2a. forma normal, apenas. O melhor método é o "estrela", descrito por Inmon. Neste projeto você deverá ter uma tabela de fatos (sua tabela principal) e várias tabelas de dimensões. As tabelas de dimensões não devem se relacionar entre si. Elas devem se relacionar apenas com a tabela de fatos.
-
Vou ser chato nas respostas. Não leve a mal. Você está querendo uma tarefa difícil e não está olhando o que te mandei antes. Primeiro: O link anterior ensina como manipular/criar/apagar, ou seja, como executar dinamicamente uma instrição SQL. Se precisar de mais informações conte comigo. Segundo: Você sabe o básico sobre SQL? Pois sua pergunta acima me informa que não. Veja, no manual do MySQL versão 4.1 em português, disponível para dowload no site da mysql, o capítulo 6, ensina sobre a sintaxe de como trabalhar com o SQL do MySQL. O mysql trabalha com threads. A cada conexão ele cria uma nova thread. Então, não importa se há 1 ou 1000 usuários. Você pode colocar um limite, para poder gerenciar melhor a performance do banco. Mas isto é outro ponto. Não há problema em ser chato. é para isto que existe o fórum. Para perguntar e aprender. (Eu aprendo muito com vocês. eheh)
-
Oi, Caio! Respondendo as suas perguntas: Sim. Os valores residirão em uma tabela fixa. A cada acesso será criada uma tabela temporária e os dados da tabela fixa serão inseridos na tabela temporária. Veja este tópico aqui do forum onde comento sobre como trabalhar com tabelas dinamicamente com nomes diferentes passados por parâmetros. Será útil a seu propósito. Sim.
-
(Leia sobre Temporary table e engine memory no manual do mysql.) Crie as tabelas dinamicamente a cada conexão, carregando os dados da tabela física que ficará imutável. Coloque poucos registros. O suficiente para dar uma amostra das funcionalidades de seu programa ao usuário. Ao final da conexão dê um drop nas tabelas temporárias. Outra solução é criar um banco paralelo, fixo, que recarregará as informações no banco de teste (usado para sua demonstração) de tempos em tempos. Outra forma é combinar a solução 1 com a solução 2. Ou seja A tabela temporária em memória com a recarga de tempos em tempos.
-
Oi, André! Este não é um caso para este forum.
-
Oi, Jhonas ! Para uma maior clareza de entendimento futuros (quando de manutenções futuras) e como melhores práticas, os atributos de tabelas devem ter o mesmo nome quando a semântica tratada por eles forem iguais. Ou seja se usamos "id_produto" para identificar univocamente um produto, e se, em outra tabela necessitamos colocar o identificador de produtos deveremos usar o mesmo nome do atributo da tabela origem (neste caso, "id_produto"). A exceção são os atributos container. Atributos container podem receber dois ou mais dados de diferentes campos de diferentes tabelas. Exemplo: Tenho uma tabela guia de rececolhimento com o nome "guia". Nela eu tenho um campo Nguia. Tenho uma segunda tabela chamada pagamentos. Nesta segunda tabela tenho um atributo chamado de Npagto. Tenho uma terceira tabela chamada de movomento de caixa e nela um atributo chamado Ndocumento e outro chamado de TipoDocto. Ndocumentos é um campo container que recebe, ora o número da guia de recolhimento, ora o número do pagamento. O tipo de documento "TipoDocto" é que me informa quando é um e quando é outro. dentro do campo container.
-
Oi, Itibere! Você perdeu os índices desta tabela. Existem duas maneiras de tentar a reparação. A primeira é baixar um backup anterior em outra máquina, copiar o arquivo de índice, colá-lo no local apropriado e tentar o reparo novamente. A segunda, através de um truque arriscado, que na maioria das vezes não dá certo, criar a estrutura da tabela em outro banco ( de preferencia no mesmo banco em outra máquina, copiar o arquivo de índice, colá-lo no local apropriado e tentar o reparo novamente.
-
Ok. Carlos! Já desenhei o modelo conforme as tabelas que você passou. Mas preciso do conceito. ou seja, o que as tabelas fazem e o que você deseja que seja feito. Isto tudo é para saber se o modelo que você idealizou é o que foi desenhado ou se há a necessidade de melhorá-lo.
-
Oi, Carlos! Por favor passe o conceito das tabelas (todas) para que possamos montar um DER adequado. O que você passou está incompleto e confuso.
-
Desculpe a ignorancia, mas o que é vertigo? O que tem a haver com o MySQL?
-
Problema ... verificação de data e ano bissexto.
pergunta respondeu ao Gariglio de Denis Courcy em MySQL
Oi, Gariglio! Experimente modificar sua query conforme abaixo: SELECT COUNT(*) AS verguia FROM parametro, aut_guia WHERE aut_guia.gui_cd =" + codGuia AND parametro.par_cd = 1 AND aut_guia.gui_dtlibsenha >= DATE_SUB(CURRENT_DATE(), parametro.par_diasexpsenha) Esta modificação tem dois propósitos: 1 - Evitar que sua pesquisa execute table scan (os cálculos devem ficar a direita do sinal e não utilizar, um campo para tal) 2 - Usar a função correta de subtração de datas em MySQL (ver manual do MySQL versão 4.1, tradução em português, capítulo 6) -
não consigo conectar uma pagina html/PHP com um banco MySQL
uma questão respondeu Denis Courcy em PHP
Prezados, O que voces estão reportando não é um problema do MySQL. Vou transferir este post para o forum do PHP. O pessoal de lá é bem legal a ponto de auxiliá-los em suas dúvidas. Como já relatei diversas vezes PHP não é minha praia. Ao Pessoal do PHP muito obrigado pelo apoio dado aos posts que trnsfiro para aí.