-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Oi, 'hishin' Verifique se seu atributo chave está como unsigned. O ideal é que esteja e que o tipo seja integer ou bigint
-
Oi, 'Heitor Glöckner' Modifiquei sua consulta para SELECT c.cli_nome, dc.deco_descricao, l.lou_descricao, dv.dev_data, dv.dev_baixa FROM devolucao dv INNER JOIN clientes c ON c.cli_codigo = dv.dev_cliente INNER JOIN decoracao dc ON dc.deco_codigo = dv.dev_decoracao LEFT JOIN loucas l ON l.lou_codigo = dv.dev_louca; e vi que não há referencias em loucas que combine com decoracao para clientes e devolucao
-
Oi, 'Ti-Support' ! Eu trabalho com SQLYog e tenho um cliente que tem o mesmo sistema em vários locais. Quando tenho que fazer manutenção deste tipo, faço em um dos escritórios gerando os scripts com instrução sql em .sql. Ao chegar em outro escritório para aplicar a atualização feita no primeiro,, faço um backup geral com mysqldump, aplico as alterações e confiro se está tudo ok. Se estiver, então aplico o novo executável do sistema.
-
Oi, 'Lobo-rio'! Pelo que vejo está faltando o terminador de linha que deve ser o '\n', se você estiver usando o Linux/Unix ou o '\r\n' se você estiver usando Windows.
-
(Resolvido) Como posso ativar os logs do mysql?
pergunta respondeu ao cleversonIT de Denis Courcy em MySQL
Oi, 'cleversonIT'! Para efetuar backup no MySQL eu utilizo o mysqldump. É a ferramenta gratuita (vem na instalação do MySQL) mais segura que existe para este banco. Veja o manual do MySQl de sua versão para saber como utilizá-lo. Para ativar o log binário (O log de transações), Voce terá que: 1 Parar o serviço do MySQL. 2 Editar o arquivo MySQL.cnf se sua versão é linux ou o arquivo my.ini se sua verão é windows, colocando o código a seguir após a instrução [mysqld]: #ativa o log-binário log-bin = /home/mysql/logs/mysql-bin.log #log binario ativado somente para o banco teste binlog-do-db=teste #identificador do servidor de MySQL. Este numero é unico e ão pode se repetir em uma rede com varios servidores de banco MySQL. server-id=1 3 Crie o diretorio /home/mysql/logs 4 (Somente para linux) crie o arquivo mysql-bin.log e mude para dono e grupo do mysql chown -R mysql.mysql /home/mysql chmod -R 775 /home/mysql 5 Reiniciar o servico do MySQL -
Oi, 'Orion Leon' Leia a seção 2.13.1.3. Starting and Troubleshooting the MySQL Server do manual do mysql 5.1 Se não houver solução, então experimente reiniciar o serviço pela linha de comando. mysqld --skip-grant-tables Depois, faça um backup usando o mysqldump, digitando pela linha de comando. Veja neste link como proceder. Depois, você poderá desinstalar e reinstalar seu mysql. Para recuperar seu backup, digite na linha de comando mysql -uroot -psuasenha Depois, dentro do prompt do mysql digite: source <nome-do-seu-arquivo-de-backup>; encerre com quit e exit.
-
Você não seguiu corretamente o código que passei. É importante que os atributos sejam precedidos de a1 ou a2 (que é a tabela renomeada logicamente para esta insrução, pois estamos tratando da mesma tabela com tres instruções selects aninhadas.) Verifique se o código está executando e retornando separadamente. Faça os testes abaixo e verifique o retorno. Teste1 SELECT a1.DATA , a1.nome, a1.hora AS entrada FROM STATUS a1 WHERE STATUS = 'entrada' AND a1.data = '2010-04-01' AND a1.nome = 'JOAO'; Teste2SELECT a2.DATA , a2.nome, a2.hora AS saidaalmoco FROM STATUS a2 WHERE STATUS = 'saidaalmoco' AND a2.data = '2010-04-01' AND a2.nome = 'JOAO'; O nome JOAO e a data '2010-04-01 foram usados somente como exemplo. Substitua por um nome e uma data apropriados Se tudo der certo, junteos na instrução abaixo:SELECT entrada, saidaalmoco, timediff( saidaalmoco, entrada ) AS tempotrabalhado FROM (SELECT a1.DATA , a1.nome, a1.hora AS entrada FROM STATUS a1 WHERE STATUS = 'entrada') t1 INNER JOIN (SELECT a2.DATA , a2.nome, a2.hora AS saidaalmoco FROM STATUS a2 WHERE STATUS = 'saidaalmoco') t2 ON t1.data = t2.data AND t1.nome = t1.nome
-
Mais simplificada, não. Fica um pouco mais complicada. select entrada, saidaalmoco, timediff(saidaalmoco, entrada) as tempotrabalhado from (select a1.data, a1.matriculafuncional, a1.hora as entrada from status a1 where status ='entrada') t1 INNER JOIN (select a2.data, a2.matriculafuncional, a2.hora as saidaalmoco from status a2 where status ='saidaalmoco') t2 ON t1.data=t2.data and a1.matriculafuncional = a2.matriculafuncional Usei a data e a matriculafuncional para estabelecer uma unicidade entre o funcionário e a data do evento.
-
Oi, 'Carlos Arruda'! Se os seus campos de hora citados acima estão no formato definido para uso com a função timediff, então declare como abaixo: SELECT horasaidaalmoco, retornoalmoco, timediff(retornoalmoco, horasaidaalmoco) as tempo_de_almoco FROM minhatabela; Saida12:00:00 13:00:00 01:00:00 12:01:00 13:00:00 00:59:00 12:01:01 13:00:00 00:58:59 11:45:43 13:05:05 01:19:22
-
Segue abaixo o que diz o manual sobre esta função. Exponha melhor o que você precisa para que possamos te ajudar.
-
Oi, 'agitonoticias'! Leia este capítulo do manual do MySQL. Chapter 6. Backup and Recovery Havendo dúvidas, poste novamente.
-
Não vi este erro acontecer, ainda. Talvez você possa usar seu sistema de backup de uma forma diferente. Use o mysqdump 1 vez ao dia e ative o log binário para fazer as gravações de cada transação entre um momento de backup e outro. direcione o resultado de ambos para outro HD na mesma máquina e, depois, grave o resultado em uma mídia permanente. O log binário abre um arquivo novo a cada backup que você fizer com mysqldump.
-
Oi, 'agitonoticias'! Somente se você já tivesse ativado dois recursos. 1) Rotinas diárias de Backup via mysqldump; 2) Log de transações, também conhecido como log binário (Binary Log).
-
Fiz o teste com a instrução abaixo e obtive o resultado que você deseja. Então o problema pode ser outro que você ainda não identificou. create temporary table teste2( KM char(5), `DATA` date, DADO char (10)) engine = memory; insert into teste2 (km, `data`, dado) values ('km-01', str_to_date('10/04/2010', '%d/%m/%Y'), 'dado'), ('km-02', str_to_date('12/02/2010', '%d/%m/%Y'), 'dado'), ('km-03', str_to_date('20/02/2010', '%d/%m/%Y'), 'dado'), ('km-04', str_to_date('05/03/2010', '%d/%m/%Y'), 'dado'), ('km-02', str_to_date('22/03/2010', '%d/%m/%Y'), 'dado'), ('km-01', str_to_date('10/03/2010', '%d/%m/%Y'), 'dado'), ('km-03', str_to_date('05/04/2010', '%d/%m/%Y'), 'dado'); SELECT KM, MAX(DATA) AS DATA, dado FROM teste2 GROUP BY KM; respondeu:KM DATA dado km-01 2010-04-10 dado km-02 2010-03-22 dado km-03 2010-04-05 dado km-04 2010-03-05 dado
-
Se você não lê em ingles, leia este capítulo do manual do mysql versão 4.1: Capítulo 7. Tipos de Tabela do MySQL Se sabe ler em ingles, leia este capítulo do manual do mysql versão 5.0: Chapter 13. Storage Engines Depois de ler, se ainda persistirem dúvidas, poste novamente.
-
Oi, Pedro! O Group by serve se a data estiver no formato date. O formato date é armazenado, no MySQL, no formato AAAA-MM-DD. SELECT KM, MAX(DATA) AS DATA, dado FROM tabela GROUP BY KM
-
Isto significa que o usuario X não é o seguidor. Com esta idéia teremos: SELECT s1.Nome as Seguido, s2.nome as seguidor FROM seguidos s INNER JOIN usuarios s1 ON s.codigo = s1.cod_usu_seguido INNER JOIN usuarios s1 ON s.codigo = s2.cod_usu_seguidor WHERE s2.cod_usu_seguidor <> X
-
Já tentou assim? "SELECT senha FROM usuarios WHERE nome = '".$nome."' AND login = '".$login."'" AND outracoluna = condicao...)
-
'Anãod®é™' Onde você escreveu a instrução que deu erro no post acima, escreva esta intrução: UPDATE mural SET dataprogressiva = FORMAT_DATE(SUBSTRING(DATA, 27, 10) , '%d/%m/%A') A função substring está sendo usada para evitar pegar o texto "A mensagem foi postada em " que aparece no campo DATA de sua tabela. Dica: se você não precisa deste texto "A mensagem foi postada em " mude seu programa parq que ele não seja gravado. Informe se conseguiu. Caso tenha erro informe o erro. Não se irrite. Este tipo de conversão é chato mesmo, mas é bom para seu aprendizado.
-
Existe sim. Leia a sintaxe de insert do manual do MySQL.
-
Fez correto. Correto. Errado. Nesta parte eu fui claro na instrução anterior. Você pulou algumas instruções. Leia de novo o post anterior. Veja abaixo a instrução que era para ter sido feita e não foi. Sim. Pode entrar com uma tabela nova já com o campo correto e entrar manualmente com os ddos. O erro está acontecendo porque o formato da data está errado. Já fiz este tipo de modificação e tive poucos problemas para converter dados. Siga as passo a passo instruções que passei no post anterior e você obterá sucesso. Sei que você é novato. Não desista. Este tipo de dificuldade é muito bom para aumentar seus conhecimentos.
-
Oi, 'raphpac' Tenta assim: select cod_pag, sum(if(tipo = 'e', valor, 0)) as val_entrada, sum(if(tipo = 's', valor, 0)) as val_saida, sum(if(tipo = 'e', valor, valor * -1)) as diferenca from teste group by cod_pag;
-
Oi, 'Rodrigo F.' Neste caso, quem pode estar definindo a unicidade nesta tabela é o PRIMARY KEY.
-
Mensagem de erro em Procedure com Transaction
pergunta respondeu ao Mauro Speca de Denis Courcy em MySQL
Oi,'Mauro Speca' Este é um problema em que ainda não obtive uma solução oficial da MySQL AB. Minha solução caseira foi fazer a procedure retornar um parametro. Crie um parametro do tipo OUT. Internamente informe o resultado de sua operação. Teste com select o resultado retornado pela variável. CREATE DEFINER=`user`@`%` PROCEDURE `InserirProduto`(pCodigo Varchar(8), pDescricao Varchar(60), pPrecoVenda FLOAT, pPrecoCompra FLOAT, OUT resultado CHAR(4)) ... SET resultado = 'OK'; START TRANSACTION; ... IF erro = 1 THEN SET resultado = 'ERRO'; ROLLBACK; ELSE COMMIT; END IF; END -
Não faz. O information_schema é um banco virtual. não existe fisicamente e não pode ser modificado pelo usuário.