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 Rafael, Ainda não terminou, não. O motivo da lentiddão pode ser porque o arquivo txt está trafegando na rede e em sua máquina está local. faça carga do arquivo para uma área do servidor e faça a carga do arquivo para suas tabelas. Experimente usar o comando LOAD DATA INFILE SET AUTOCOMMIT = 0; SET FOREIGN_KEY_CHECKS=0; LOAD DATA INFILE 'file_name' INTO TABLE tbl_name [CHARACTER SET charset_name] use esta linha somente se precisar mudar o charset COLUMNS [TERMINATED BY 'string' -- use '\t' no lugar de string se a separação das colunas for TAB LINES TERMINATED BY 'string' -- use '\r\n' no ligar de string se o sist.operacional for windows use '\n' se o sist.operacional for linux SET FOREIGN_KEY_CHECKS = 1; COMMIT; SET AUTOCOMMIT = 1;
  2. Oi Rafael, Que comando você está utilizando para a carga deste txt? Os dados em do txt para uma tabela temporária e depois vão para a(s) tabela(s) de destino? ou vão diretamente para a(s) tabela(s) de destino? Se você usa tabela temporária como você limpa a tabela antes da próxima carga, você usa Delete ou Truncate? As tebalas de destino são innodb e possuem constraints com outras tabelas? Se sim você desligou o autocommit e o foreign key checks antes da carga? Você dá lock nas tabelas de destino para que elas fiquem exclusivas durante a carga (não sofrendo concorrência e aumentando a velocidade de processamento de carga)? SET AUTOCOMMIT = 0; SET FOREIGN_KEY_CHECKS=0; .. suas instruções de carga .. SET FOREIGN_KEY_CHECKS = 1; COMMIT; SET AUTOCOMMIT = 1;
  3. Não há o que fazer em termos de SQL. Moverei o tópico para o fórum de PHP para que eles possam te explicar como fazer naquela linguagem.
  4. Quando você realiza um join você deve comparar elementos das duas tabelas para que elas possam se corresponder. Você não deve usar elemantos vindos de variáveis. Elementos vindos de variáveis devem ser usados na cláusula WHERE. Segue abaixo um exemplo de como deveria ser a sql acima:SELECT * FROM usu_usuarios u LEFT JOIN usu_nivel n ON n.niv_codigo = u.usu_cod_nivel WHERE u.usu_codigo = us_codigo AND u.usu_cod_nivel = var_cod_nivel; Por padrão o motor do MySQL vai ler da esquerda para a direita. Ou seja lerá os valores em usu_usuarios e buscará correspondentes em usu_nivel. Caso não encontre correspondentes em usu_nivel trará NULL para os campos desta tabela.
  5. Use Mysql versão 5.1.x ou maior. Use 19.4. Using the Event Scheduler
  6. Por que pensar em idéias mirabolantes se um simples update resolve o problema e é mais rápido? UPDATE `meus_usuarios` SET `cidade` = NULL Se o atributo for NOT NULL use um valor default.
  7. Não dê UP em seu tópico. Se quer pressa procure um profissional e pague por isso. Somos todos voluntários. Fazemos o que podemos e quando podemos.
  8. Movendo o tópico para "Outras Linguagens de Programação"
  9. Neste caso o lógico seria criar um teste na formação da string de atualização não gravando este campo se ele estiver vazio. Para tal o campo deve ser NULL. Como não conheço PHP vou transferir este tópico para lá.
  10. Denis Courcy

    DÚVIDA EM TAGS

    Ok. Vamos tentar explicar pois não domino PHP, mas já reconheço alguns pontos da linguagem. A linha abaixo retorna o SQL que você quer como resultado. (O resultado esperado dito por você no primeiro post e que eu usei como base para fazer meus testes.) Você disse: $somar = mysql_query("SELECT id_marcador, COUNT(id) as Total FROM tags GROUP BY id_marcador"); A linha abaixo é o código PHP que você está usando para exibir o resultado de seu SQL. <li><a href="blog_marcadores.php?id=<? echo $id;?>"><? echo $id_tag; ?>( <? echo $totalid['Total']; ?> )</a></li> O SQL retorna os seguintes campos: id_marcador e Total. Seu código PHP usa os seguintes campos: $id, $id_tag, $totalid['Total'] Observe que não bate a saída do SQL com o que você usa no PHP. Meu conhecimento de PHP encerra aqui. Se quiser posso transferir este tópico de volta a área de PHP para que eles possam te dar um suporte melhor.
  11. Denis Courcy

    DÚVIDA EM TAGS

    Voce ão corrigiu o código PHP como eu falei. a linha abaixo ainda está se referindo a atributos(campos) que não estão no código SQL. Nem no código SQL original nem no código SQL que te passei. Caso você ainda não tenha visto a linha que falo é esta: <li><a href="blog_marcadores.php?id=<? echo $id;?>"><? echo $id_tag; ?>( <? echo $totalid['Total']; ?> )</a></li> Você insiste em usar ID e ID_TAG mas voce quer ID_MARCADOR. Ou você muda o SQL para aceitar ID e ID_TAG ou muda o código PHP para aceitar ID_MARCADOR.
  12. Denis Courcy

    DÚVIDA EM TAGS

    Fiz um teste assim: create table TAGS( ID int not null auto_increment, ID_MARCADOR int not null, ID_POSTAGEM int not null, primary key(id), key(ID_MARCADOR, id), key(ID_POSTAGEM, id))engine myisam; insert into tags(id,ID_MARCADOR,ID_POSTAGEM) values(1,8,3),(2,9,3),(3,11,3),(4,8,4),(5,9,4),(6,12,4); SELECT id_marcador, COUNT(id) as Total FROM tags GROUP BY id_marcador; Retornou o que você quer. Então verifiquei o seguinte: Você pede para exibir somente o campo count em $SQL1 = "SELECT * FROM tags GROUP BY id_marcador ORDER BY id"; mas na hora de exibir coloca outros campos <li><a href="blog_marcadores.php?id=<? echo $id;?>"><? echo $id_tag; ?>( <? echo $totalid['Total']; ?> )</a></li> Coloque o código abaixoSELECT id_marcador, COUNT(id) as Total FROM tags GROUP BY id_marcador; E corrija a linha do seu código PHP que dará certo.
  13. Que erro esta sendo apresentado?
  14. Quando te passei o script pela primeira vez, foi depois de ter testado com sucesso e meu banco é 5.0.37. Não sei onde pode estar o erro. Tente colocar crases aqui `INFORMATION_SCHEMA`.`COLUMNS`. aqui `TABLE_NAME` e aqui `COLUMN_NAME` Tente colocar avisos aqui: if resultado = 0 then ALTER TABLE `oservico` ADD COLUMN `valor_cli` VARCHAR(10) NULL; SELECT "INCLUIU CAMPO"; else SELECT "não INCLUIU CAMPO"; end if;
  15. Coloque em uma storage procedure. DELIMITER $$; DROP PROCEDURE IF EXISTS `meubancodedados`.`inclui_campo`$$ CREATE PROCEDURE `meubancodedados`.`inclui_campo` () BEGIN declare resultado int unsigned default 0; set resultado = (select count(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'oservico' AND COLUMN_NAME = 'teste'); if resultado = 0 then ALTER TABLE `oservico` ADD COLUMN `valor_cli` VARCHAR(10) NULL; end if; END$$ DELIMITER;$$ Nota: Voce compara COLUMN_NAME = 'teste' e inclui ADD COLUMN `valor_cli` VARCHAR(10) NULL. Está certo isso? para executar usecall inclui_campo;
  16. O erro 150 para alter table quando da criação de um foreign key informa qua não foi possível a criação da constraint. Observando as estruturas publicadas no primeiro post verifiquei que o campo abaixo: id_categorias_produtos int(4) NOT NULL DEFAULT '0', foi declarado de forma indevida para possibilitar a criação da constraint. O campo deve ser NOT NULL sem valor default. Isto implicará que só serão aceiros os registros que satisfizerem a condição da constraint. Como corrigir: Primeiro alterar o campo em questão: ALTER TABLE produtos MODIFY id_categorias_produtos int(4) NOT NULL O Segundo passo é colocar valores válidos no campo id_categorias_produtos (valores que constem na tabela categorias) para os registros que tiverem com valor 0(zero) neste campo. Só depois de ter feito os passos acima é que você poderá criar o relacionamento entre as tabelas.
  17. Não é campo. É o padrão que eu uso para nomear este relacionamento. produtos = nome da tabela FK = o índice é um Foreign Key 001 = é o primeiro relacionamento (número sequencial que eu uso para documentar) nesta tabela
  18. ALTER TABLE produtos ADD CONSTRAINT `produtos_FK_001` FOREIGN KEY (`id_categorias_produtos`) REFERENCES `categorias` (`id_categorias`) ON DELETE CASCADE;
  19. Use Trigger de BEFORE UPDATE exemplo: DELIMITER $$; DROP TRIGGER `seguranca`.`tbu_usuario`$$ CREATE TRIGGER `seguranca`.`tbu_usuario` BEFORE UPDATE on `seguranca`.`usuario` FOR EACH ROW BEGIN IF NEW.senha = '' then SET NEW.SENHA = OLD.senha; END$$ DELIMITER;$$ onde: seguranca é o nome do meu banco de teste. usuario é a minha tabela no banco seguranca senha é o campo da tabela usuario
  20. Seu problema não é na sintaxe do mysql. Movendo MySQL-->>PHP
  21. Denis Courcy

    PIVOT TABLE

    Duvida SQL Duvida sobre SubQuery Procedure - Pivot Retornar Consulta na mesma linha, Pivot (com string)
  22. Pelo que testei sua query retorna sim. O que está acontecendo é que ela está "sentando" e isto está acontecendo porque sua cláusula where está gerando "table scan". Verifique se há indice para o atributo "data" data tabela "artigos". Se não houver, crie. Teste se esta cláusula where é melhor SELECT SQL_CACHE * FROM artigos WHERE data BETWEEN DATE_SUB(now(), INTERVAL 7 DAY) AND now() ORDER BY visitas DESC LIMIT 10;
×
×
  • Criar Novo...