-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Oi 'palmeira', a referencia em uma foreign key deveser feita a chave primária da tabela pai. No seu caso o atributo id da tabela confederacao deverá esstar na tabela federacao e não onome como você colocou.
-
Acesse http://dev.mysql.com/downloads/
-
'douglasdamame' Corrija esta linha `Pago` TINYINT NULL DEFAULT (0), para que fique assim: `Pago` TINYINT NULL DEFAULT 0,
-
'LillyC' O erro de sua cl´´ausula WHERE em seu SELECT está assim: SELECT campos FROM tabela WHERE AND... Quando deveria estar assim: SELECT campos FROM tabela WHERE {uma comparação}AND {outra comparação}... Modifique para que fique assim e não haverá mais erro... // define a consulta $sql = "SELECT id, nome, endereco, bairro, cep, pf_pj, cpf_cnpj, cnh, rg_ie, dt_nascimento, telefone, celular, obs, email FROM clientes WHERE 1=1 "; // detecta filtro por nome do clientes if (!empty($_REQUEST['clientes'])) { $client = addslashes($_REQUEST['clientes']); $sql .= " AND nome like '%{$client}%'"; } //ordena a consulta $sql .= ' ORDER BY ' . $_REQUEST['ordem']; //executa a instrução $result = $conn->query($sql); ...
-
Forum Errado. Movendo MySQL -->> PHP
-
Desculpa a demora, problemas de família.. Denis, o "WHERE" não é utilizado para quando requer uma condição especial? Por exemplo, se eu tenho duas tabelas relacionados pelo ID uso esse campo para fazer consulta com as duas tabelas.. Bom, enquanto a dúvida persiste continuo estudando e fazendo testes... Vls Oi 'LillyC', A cláusula WHERE´deve ser utilizada como um filtro que afetará todo o SELECT. Infelizmente muitos usam o WHERE oara realizar as condições de JOIN (ligação entre duas tabelas). Eu recomendo usar a cláusula INNER JOIN ou LEFT JOIN para fazer isso. Usar a cláusula JOIN torna seu SELECT mais limpo. Mais fácil de ler. Exemplo:SELECT Titular.Nome, Dependente.Nome FROM Titular, Dependente WHERE Titular.codTitular = Dependentes.codTitular AND Titular.Nome LIKE "M%" Exemplo 2SELECT Titular.Nome, Dependente.Nome FROM Titular INNER JOIN Dependente ON Dependentes.codTitular = Titular.codTitular WHERE Titular.Nome LIKE "M%" Os dois exemplos acima produzem o mesmo resultado. (Selecionar o nome dos titulares e o nome dos dependentes de todos os titulares cujos nomes começam pela letra "M") Porém o segundo é mais fácil de entender. Imagina a confusão para entender o código do exemplo 1 se você tiver que ligar 4 ou 5 tabelas e se a cláusula WHERE tiver diversos filtros? O exemplo 2 coloca "cada macaco em seu galho" e torna o código muito mais claro.
-
Oi, 'cleber_mav' Insira um atributo na tabela history_services. Eu criei o atributo idServices que representará o id da tabela services quando da gravação dos dados para que você possa saber o histórico de cada registro de services. O trigger de inclusão é assim: DELIMITER $$; DROP TRIGGER `test`.`Services_before_insert`$$ CREATE TRIGGER `test`.`Services_before_insert` BEFORE INSERT on `test`.`services` FOR EACH ROW BEGIN insert into history_services(`idservices`, `name`, `request_date`, `value`, `status`) values(new.id, new.name, new.request_date, new.value, 'ATIVO'); END$$ DELIMITER;$$ E o trigger de exclusão é assim:DELIMITER $$; DROP TRIGGER `test`.`Services_before_delete`$$ CREATE TRIGGER `test`.`Services_before_delete` BEFORE DELETE on `test`.`services` FOR EACH ROW BEGIN insert into history_services(`idservices`, `name`, `request_date`, cancellation_date, `value`, `status`) values(old.id, old.name, old.request_date, NOW, old.value, 'INATIVO'); END$$ DELIMITER;$$
-
(Resolvido) Ajuda para um iniciante, por favor.
pergunta respondeu ao Setimus de Denis Courcy em MySQL
Sim, o MySQL só trabalha atrelado com outra linguagem. Diferente do access que é voltado para end users o mysql é um banco profissional, com uma capacidade muito superior a do access. Linguagens que trabalham com MySQL: Todas. O MySQL possui algus gerenciadores de bd. Entre outros estão o MyAdmin, SQLyog, MySQL Workbench. Existem muitos livros e apostilas free na net. Seria interessante você estudar sobre bancos de dados em geral. Aprender o que é forma normal, estruturação de dados, etc. Para isto recomendo o livro:Sistemas de Bancos de Dados - Editora: Addison-Wesley - Autor: RAMEZ E. ELMASRI & SHAMKANT NAVATHE - ISBN: 8588639173 O manual do Mysql também é uma boa referência para tirar dúvidas de como funcionam os comandos. Se precisar de mais informações contiue postando. este também éo objetivo deste fórum. -
A melhor maneira é guardar o arquivo em uma pasta de seu servidor dearquivos e guardar no banco mysql somente o nome eo caminho de onde está o arquivo. Quando a desenvolver o sistema em PHP,vou mover o tópico para a área de PHP pois aqui só tratamos do banco de dados. Movendo MySQL -->> PHP
-
o que faz comando "in" e o comando "having "
pergunta respondeu ao master php de Denis Courcy em MySQL
Oi 'master php', O comparador IN é um condicional que pode ser utilizado na cláusula WHERE ou na cláusula HAVING do comando SELECT Sua função é verificar se um elemento está dentro dentro de um conjunto. Exemplo: SELECT 2 IN (1,2,3,4) Resposta 1 (verdadeiro - encontrou elemento) SELECT 6 IN (1,2,3,4) Resposta 0 (falso - não encontrou elemento) A cláusula HAVING do comando SELECT é usada somente quando se aplica outra cláusula (GROUP BY). Serve para filtrar somente os valores destes agrupamentos. Exemplo:SELECT nome, COUNT(nome) FROM clientes GROUP BY nome HAVING COUNT(nome) > 1 O exemplo acima exibe o nome dos clientes que estejam duplicados (apareçam mais de uma vez) na tabela de clientes. Este tipo de condicional não pode ser obtido usando a cláusula WHERE Outro exemplo:Exemplo:SELECT nome, COUNT(nome) FROM clientes WHERE sexo = 'F' GROUP BY nome HAVING COUNT(nome) > 1O exemplo acima combina dois tipos de filtros diferentes. O filtro da cláusula WHERE afeta toda a tabela e o filtro da cláusula HAVING afeta somente o que acontece no agrupamento. Exibe o nome dos clientes, do sexo feminino, que estejam duplicados (apareçam mais de uma vez) na tabela de clientes. -
Oi Tércio, Como boa prática eu não armazenaria imagens no banco. é mais fácil guardar o path/nome das imagens no banco e as imagens ficarem em uma pasta do servidor. Segundo. atendendo a 3ª forma normal eu teria uma tabela separada para armazenar as fotos de cada produto. A esturura desta tabela seria o identificador do produto e o path/nome da imagem. Assim eu não deixaria espaços em branco na tabela de produto caso houvesse menos produtos e não ficaria limitado a 5 imagerns caso houvesse mais imagens para um ptoduto. O trabalho de manutenção seria menor e o acesso as imagens seria mais rápido (exigiria menos I/O entre o banco e o servidor http).
-
Oi, 'Julio Cozini'! Como sua duvida não está relacionada diretamente com mysql, vou transferir este tópico para uma área mais apropriada. MOVENDO MySQ L-->> EDITORES
-
Se é assim, então vamos lá: SELECT B.NOME, COUNT(*) FROM FUNCIONARIO AS A, PROJETO AS B, ALOCADO AS C WHERE C.PFUNCIONARIO = A.IDFUNCIONARIO AND C.PPROJETO = B.IDPROJETO AND DEPENDENTES > 3 AND B.IDPROJETO IN (SELECT PPROJETO FROM ALOCADO GROUP BY PPROJETO HAVING COUNT(*) > 4) GROUP BY B.NOME; Selecionar nome do projeto e quantidade de pessoas alocadas por projeto onde a quantidade de dependentes for maior que 3 e o projeto estiver com mais de 4 alocações. O segundo select será:SELECT IDFUNCIONARIO, NOME FROM FUNCIONARIO WHERE NOT EXISTS ( (SELECT IDPROJETO FROM PROJETO WHERE PRIORIDADE = 2 AND IDPROJETO NOT IN ( SELECT PPROJETO FROM ALOCADO WHERE PFUNCIONARIO = IDFUNCIONARIO ) )); Selecione o identificador e o nome do funcionario que não exista em projetos com prioridades 2 e que não estejam alocados.
-
Oi 'GRAO777', Ajudar a fazer o que?
-
Oi 'LillyC', Você esqueceu da cláusula WHERE. O código passa da declaração FROM tabela para AND sem usar a cláusula WHERE. Veja a sintaxe do comando SELECT no manual do mysql de sua versão. SELECT {lista de campos} FROM {nome da tabela} [WHERE {campo} condição]
-
tem como sabe o histórico dos comandos utilizados anteriores
pergunta respondeu ao master php de Denis Courcy em MySQL
Sim. Tem como obter histórico e recuperar atualizações indevidas. Estude sobre log-binário no manual do mysql de sua versão. -
Sigas os passos abaixo e talvez funcione: Pare o serviço do MySQL. Copie os arquivos /var/lib/mysql/ib_logfile* para outro lugar Copie os arquivos ib_logfile* do backup para /var/lib/mysql/ Reinicie o serviço do banco Boa sorte. pode ser que não funcione. a recuperação "na marra" de arquivos innodb é muito difícil.
-
(Resolvido) Condição IF dentro da consulta SQL
pergunta respondeu ao marcosfj1 de Denis Courcy em MySQL
Oi 'marcosfj1' , Tente algo assim: SELECT IF(sexo = 'M','MASCULINO','FEMININO') FROM tabela -
Tenta assim:select sum(id) from teste258 group by id order by sum(id) desc limit 1
-
Ajuda! Duvida sobre relacionamento M para M no mysql
pergunta respondeu ao Elaine Mendes de Denis Courcy em MySQL
Oi Elaine, Você entendeu, mas não fez o que falei. Ao escrever sua trigger você cometeu alguns erros. 1º Você está tentando misturar banana com laranja. Veja sua trigger: ... DECLARE _pais_cpf int; select pais_cpf_cnpj from pais; BEGIN INSERT INTO pais_empresas values (_pais_cpf); END; END$$ Você declarou uma variável, não a usou para receber nenhum valor e, quando fez o insert usou a variável vazia. 2º Ao fazer uma trigger assim você corre o risco de criar uma inconsistencia de dados na tabela pais_empresas, pois ela só estará recebendo dados da tabela pais. 3º Este é menos grave mas não mais importante que os outros. Um CPF pode ser uma chave única mas não deve ser nunca a chave primária. Chaves primárias são feitas única e exclusivamente para ligar uma tabela a outra. Normalmente eu evito - esta é uma prática minha - colocar mais mais de um atributo (campo) como chave primária em uma tabela. Vendo o código da segunda trigger que você mostrouDELIMITER $$ CREATE TRIGGER inserir_p_emp1 AFTER INSERT ON pais FOR EACH ROW BEGIN IF (pais_cpf_cnpj is not null) THEN INSERT INTO pais_empresas set pais_cpf_cnpj = pais_cpf_cnpj; END IF; END$$ Os seguintes erros foram cometidos: 1º O comando insert está errado. ele não usa o SET nem o sinal de igual. Veja a documentação do MySQL para saber como é o comando http://scriptbrasil.com.br/forum/index.php...st&p=478131 Já que você insiste em colocar seu código para alimentação da tabela pais_empresas em uma trigger vou escrever uma rotina abaixo para que você possa ter uma idéia. Supondo que anteriormente você fez a instrução de inserção de empresa e que a chave primária da tabela empresa é IDEMPRESA e que IDEMPRESA é INTEGER NOT NULL AUTO_INCREMENT Supondo que o atributo que representa a empresa na tabela pais_empresas também se chama IDEMPRESA, então teremos: DELIMITER $$; CREATE TRIGGER inserir_p_emp1 AFTER INSERT ON pais FOR EACH ROW BEGIN DECLARE vIDEMPRESA INTEGER NOT NULL DEFAULT 0; SET vIDEMPRESA = (SELECT MAX(IDEMPRESA) FROM EMPRESA); /*Pega o ultimo registro inserido na tabela empresa*/ INSERT INTO pais_empresas(IDEMPRESA, pais_cpf_cnpj) VALUES(vIDEMPRESA, NEW.pais_cpf_cnpj); /* o NEW na frente do atributo pais_cpf_cnpj, diz ao trigger para pegar o valor que ele acabou de inserir para este atributo na tabela pais*/ END$$ DELIMITER;$$Faça a modificação necessária para atender sua necessidade e reporte se tiver mais dúvidas. Não deixe de ler o Manual do MySQL. É muito importante como referência. Eu o uso sempre. -
Ajuda! Duvida sobre relacionamento M para M no mysql
pergunta respondeu ao Elaine Mendes de Denis Courcy em MySQL
Oi Elaine, Para este tipo de processo você deverá criar uma rotina que pode ser uma storage procedure (o que não recomando pois o MySQL ainda carece de mensagem de retorno em caso de ABEND de transação) ou através de linguagem de programação que você usa. Você deverá seguir a seguinte logica: Os cadastros de empresa e pais podem ser independentes pois suas gravações não afetam nada. Eu coloquei a empresa primeiro poque deverá haver uma quantidade menor de empresa do que de pais. Então sua gravação será independente. Coloquei o cadastro de pais em segundo lugar porque dentro dele já vou buscar a empresa que ele trabalha. Quando for gravar a informação dos pais e do relacionamento entre empresa e pais usarei uma unica transação seguindo a logica abaixo para executála: A lógica abaixo é usada quando você define que seu MySQl NÃO possuirá COMMIT automático Iniciar transação Gravar Pais Gravar Relacionamento Empresa_x_Pais Commitar transação Se houver erro dar rollback na transação Fim de transação Uma outra forma que segue lógica parecida é usada quando você define seu MySQl com COMMIT automático Gravar Pais COMMIT Gravar Relacionamento Empresa_x_Pais COMMIT -
INSERT INTO bancodestino.tabeladestino(campo1,campo2,campo3,campo4,campoN) SELECT campo_A,campo_B,campo_C,campo_D,campo_N FROM bancoorigem.tabelaorigem
-
O modelo de dados é independente de como estes dados serão manipulados/exibidos. O modelo de dados depende, essencialmente, do propósito de sua aplicação. Sua concepção é, normalmente, realizada quando das definições do sistema. Após os primeiros levantamentos e, de preferência, após a criação de seus requisitos ( modelos e documentação de casos de uso quando se trabalha com UML para o projeto do sistema.) Pense no projeto de seu sistema. Levante os requisitos funcionais e não funcionais dele, crie o modelo de dados, depure bem tanto o modelo como os requisitos e, depois, crie o banco de dados físico e comece a programar
-
Isto é da linguagem de programação que você usa. Informe a linguaagem e passarei o tópico para o fórum correto.
-
relação com mais de duas tabelas
pergunta respondeu ao Diogo Henrique Fragoso de Denis Courcy em MySQL
Por favor envie a relação de campos de cada tabela, pois a imagem que você postou está ilegivel. Informe de cada tabela qual é a chave primária e com que campo ela se liga a outra tabela