Ir para conteúdo
Fórum Script Brasil

Denis Courcy

Moderadores
  • Total de itens

    3.089
  • Registro em

  • Última visita

Tudo que Denis Courcy postou

  1. Oi, 'rogernem' Veja se chega próximo ao que você quer: select 'tb1' as tb, e.id_a as id ,e.day from eventos e UNION select 'tb2' as tb, a.id_b as id,a.day from aniversarios a;
  2. Oi, 'IvanR' Normalmente o MySQL converte números para string e vice-versa, sem problemas e sem ter que usar nenhuma função de conversão. Tente usar um truque de conversão de numeros para string, ficando sua consulta assim: SELECT nome, GROUP_CONCAT(concat(cod_Disciplina,"")) FROM ALUNO GROUP BY nome Complementando O "Blob" que aparece para você pode ser o tipo TEXT. Um tipo especial para campos com formato caracter maiores que 255 bytes. Este tipo pode estar sendo gerado automaticamente pelo gerenciador de BD que você está usando.
  3. Oi, 'IvanR' Faça assim: SELECT nome, GROUP_CONCAT(Disciplina) FROM ALUNO GROUP BY nome
  4. Oi, 'Rodrigo26' ! Conforme o manual (referencia envidada no post anterior), esta solução foi implementada na verão 5.1.7 e foi removida na versão 5.1.23, por ter sido considerada muito perigosa. Os autores pedem que este comando NÃO SEJA UTILIZADO. Uma solução que tenho usado é, com o uso do SQLYOG, criar um database vazio e copiar toda estrutura, dados, funções, triggers e procedures do banco atual para o novo e, depois, dropar o banco antigo. É demorado mas é seguro.
  5. Oi, 'RDC'! Sua solução estava duplicando a ultima linha porque a variável done ainda estava setada como false quando da leitura da última linha. Ela só é setada como true após tentar ler e não encontrar mais nenhum registro. Substitua este trecho de código REPEAT FETCH c_cursor into data_cadastramento,telefone,pront,num; INSERT INTO cursor_t (Data_d,Telefone,prontuario,num) VALUES (data_cadastramento,telefone,pront,num); UNTIL done END REPEAT; por esteFETCH c_cursor into data_cadastramento,telefone,pront,num; WHILE not done DO INSERT INTO cursor_t (Data_d,Telefone,prontuario,num) VALUES (data_cadastramento,telefone,pront,num); FETCH c_cursor into data_cadastramento,telefone,pront,num; END WHILE; Avaliando melhor sua procedure, vi que você não necessita de um controle de laço para fazer o que você quer. Então, estou propondo uma solução mais otimizada (mais rápida e mais eficiente) para sua srocedure. Modifique toda sua stored procedure para que fique assim: DELIMITER $$ DROP PROCEDURE IF EXISTS `teste_cursor` $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `teste_cursor`() BEGIN INSERT INTO cursor_t (Data_d,Telefone,prontuario,num) SELECT DATA_INCLUSAO,TELEFONE,PRONTUARIO,NUMERO FROM todos; END $$ DELIMITER;
  6. Oi, 'The arlindo'! Sim. Funciona. O BETWEEN te dará um intervalo entre datas. O DATE_SUB diminuirá um intervalo de tempo de uma data. Neste caso, o comando INTERVAL 10 DAY está setando o intervalo de tempo para 10 dias. Mas, pode ser meses (MONTH) ou anos (YEAR).
  7. Denis Courcy

    sql

    Porque o LIKE é um comparador, tal como o = ou > ou < ou not. No caso acima a função IF só retornara constantes.
  8. Denis Courcy

    Entendendo o MySql.

    Oi, 'Cood' Conexão = acesso ao banco de dados Queries = Comandos SQL que executam uma consulta a uma ou mais tabelas em um ou mais abancos de dados. Processo = Ação do banco de dados para a execução de qualquer tarefa dentro dele. Exemplo Uma Query, quando está sendo executada é um processo.
  9. Oi, 'FabioH2C' Use a função DATE. Exemplo SELECT select now() retornará um timestamp com data e hora atual. SELECT DATE(NOW())Retornará a datado timestamp acima. Leia a seção 6.3 do manual do mysql versão 4.1 em português
  10. Oi, 'The arlindo' A resposta é: data BETWEEN curdate() AND DATE_SUB(curdate(), INTERVAL 10 DAY)
  11. Oi, 'Edimar05'! Seu problema está ligao PHP e ão ao MySQL. Movendo MySQL -->> PHP
  12. Oi, 'Roni Gasparetto' Mostre a estrutura da tabela e alguns dados de exemplo para que possamos visualizar melhor seu problema. Oi, 'Roni Gasparetto' Mostre a estrutura da tabela e alguns dados de exemplo para que possamos visualizar melhor seu problema.
  13. Denis Courcy

    Diretorio Mysql

    Oi, 'nsouza'! Creio que você está em uma sinuca de bico. Não se deve fazer backup dos dados do MySQL simplesmente copiando a(s) pasta(s) onde estão os dados. Deve-se usar uma ferramenta de backup para isso. O motivo disto é que o MySQL cria um banco virtual (que até agora não descobri como ele guarda este banco) chamado information_schema. Neste banco estão todas as informações (metadados) sobre suas tabelas, indices, triggers, storage procedures e funções, ou seja tudo sobre seus bancos estão guardados neste banco. Quando você copia a pasta, como você fez e, simplesmente, copia de volta, depois de reinstalar o MySQL, haverá uma diferença entre o que está no information_schema e na estrutura das tabelas que você copiou de volta, ocasionando erro. Há uma maneira de enganar o information_schema. Você deverá criar toda a estrutura de seu banco de dados, primeiro e, depois, copiar as pastas de volta ao lugar delas. Mesmo assim, você ainda terá problemas se o engine que você está usando for o InnoDB. Este engine possui características especiais que podem interferir negativamente neste tipo de reconstrução. Normalmente, no engine InnoDB as chances de recuperar seu banco usando esta técnica estão abaixo de 50%.
  14. Oi,'maujaffar' Você já criou a tabela avioes? Ela deve ser criada antes desta senão dá erro. Declare assim: create table voos ( cod_fly int primary key, data_entrada datetime, data_saida datetime, hora_entrada time, hora_saida time, cod_aviao int, constraint vooaviao foreign key (cod_aviao) references avioes (cod_aviao) );
  15. Oi, 'maujaffar'! A sintaxe é diferente. Declare o campo normalmente e, depois, quando você for descrever os incices, declare a constraint. Exemplo: create table voos ( cod_fly int primary key, data_entrada datetime, data_saida datetime, hora_entrada time, hora_saida time, cod_aviao int constraint <nome_da_constrint> foreign key (cod_aviao) references avioes (cod_aviao) );
  16. Oi,'Mestre SAM' Este tipo de auditoria não existe no MySQL. Mas você pode implementar. É fácil. Oi,'Mestre SAM' Este tipo de auditoria não existe no MySQL. Mas você pode implementar. É fácil.
  17. Oi,'Lucas Appr'! A mensagem é clara. Você está tentando inserir um registro e este está dando duplicidade em uma chave única setada para o campo 'player_id_2' Corrija o dado e seu erro desaparecerá.
  18. Denis Courcy

    erro mysql

    Oi, 'ailson silva'! A essencia do seu erro é esta: Isto acontece quando você tenta fazer uma alteração na tabela filha sem que haja um registro que corresponda a referencia desejada na tabela pai. Ou seja. Você está tentando modificar Fornecedores_codigo mas não há registro em `fornecedores` (`Codigo`) que corresponda aesta operação.
  19. Pode mas tem que prestar muita atenção no código pois você poderá se perder.
  20. Oi 'Negresco_7' Os dados são de minha base de testes. Como hoje é quarta feira, para efeito de teste usei o dia de hoje. Veja o exemplo e se este se aplica ao que você quer: select nasceu from cliente where dayofweek(nasceu) = 4 and dayofweek(now()) = 4 and day(nasceu) = day(now()) and month(nasceu) = month(now())
  21. Oi,'neo_soro'! Faça assim: SELECT u2.nome FROM usuario u2 WHERE u2.idusuario NOT IN (SELECT u.idusuario FROM usuario u JOIN plano p ON u.idusuario = p.idusuario) ou assim:SELECT u2.nome FROM usuario u2 WHERE u2.idusuario NOT IN (SELECT DISTINCT p.idusuario FROM plano)
  22. Denis Courcy

    SELECT ERRO e Duvida

    Oi, 'Volg' Se está demorando e esta é uma operação que você vai fazer sempre, então crie um índice por data SELECT * FROM g01t0026 where DATA < "2008-01-01"
  23. Oi, 'Eron Pessoa'! Tente assim: select dd.cnpj, dc.soma from doadores dd INNER JOIN (SELECT cnpj2, SUM(valor) as soma FROM doacoes GROUP BY doacoes.cnpj2) dc ON dd.cnpj = dc.cnpj
×
×
  • Criar Novo...