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. Não entendi o que você quer. Pode passar o que você fez no php para que eu possa tentar repetir no sql e te mostrar e explicar?
  2. Vamos mudar um pouquinho. BEGIN /* declaro variavel para realizar controle */ DECLARE marca INT DEFAULT 0; declare desc_ VARCHAR(60); /* select para verificar se já existe algum registro para a marca selecionada da empresa */ SET marca = (select count(cod_marca) from empresas_lojas where cod_marca = new.cod_marca AND cod_empresa = new.cod_empresa); /* select para recuperar o nome da marca que estamos inserindo */ SET desc_ = (select descricao from marcas where cod_marca = new.cod_marca); /* verifico se existe já um dado para marca escolhida, se marca for maior que 0 é porque já foi feito um cadastro para marca selecionada, caso contrario apenas salvo essa nova marca */ IF(marca < 1) then /* crio copia da marca para a empresa */ insert into empresas_marca (cod_marca, descricao, cod_empresa, cod_loja) values (new.cod_marca, desc_, new.cod_empresa, NEW.cod_loja); END IF; ENDTenta agora.
  3. Faça assim: CREATE TABLE produto ( id int(10) unsigned NOT NULL AUTO_INCREMENT, nome varchar(45) NOT NULL, descricao varchar(45) NOT NULL, /*data criação*/ datacriacao DATETIME NOT NULL, /*data atualização*/ datamodificacao TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Quando for dar INSERT nesta tabela use NOW() para atribuir valor para o atributo datacriacao. Não há necessidade de timestamp pois este atributo recebe valor somente na ação de insert.exemplo: INSERT INTO produto(nome, descricao, datacriacao) VALUES ("nome produto", "usado para qualquer coisa", NOW());Pelo que analisei sua tabela já possui alguns produtos cadastrados AUTO_INCREMENT=6.Você pode dar um ALTER TABLE para modificar o atributo datacriacao, fazendo assim: ALTER TABLE produto MODIFY COLUMN datacriacao DATETIME NOT NULL;
  4. Problema: tabelas Solução SELECT DISTINCT usuario FROM empresas_usuarios WHERE cod_loja = 3 AND usuario NOT IN (SELECT DISTINCT USUARIO FROM equipes_usuarios WHERE cod_loja = 3)
  5. Denis Courcy

    Ajuda!

    Leia este artigo: http://phpbrasil.com/artigo/11qDFvxJBUXI/lidando-com-utf-8-com-o-php-e-mysql
  6. Utilize DEFAULT CURRENT_TIMESTAMP somente para a data de alteração. (Só pode haver um DEFAULT CURRENT_TIMESTAMP por registro. Para data de criação use datetime e alimente-o com NOW() na inclusão.
  7. A primeira coluna, onde diz "AS TABELA", a string entre aspas é o nome da tabela e o termo AS indica como vai se chamar aquela coluna. No caso: tabela. O mesmo tipo de mudança de nome se deu com as colunas "codigo" e "valor" Não há a necessidade dos termos em vermelho que você colocou.
  8. Faça assim: SELECT "consumo" AS tabela, codconsu AS codigo, data, colcod, valortotal AS valor FROM consumo where colcod = (SELECT colcod FROM usuario WHERE nome = "Mateus") UNION SELECT "pedidos" AS tabela, codped AS codigo, data, colcod, itemtotal AS valor FROM pedidos WHERE colcod = (SELECT colcod FROM usuario WHERE nome = "Mateus")
  9. Denis Courcy

    Mysqldump

    Não. Só serve para windows. Pergunte no forum de Linux.
  10. Denis Courcy

    Mysqldump

    Apesar da geração de arquivos de lote do sistema operacional não fazer parte do escopo deste forum, parei um pouquinho para rever alguns conceitos e te ajudar. O Comando: C:\Users\Jonh Doe>for /F %a IN (texto.txt) DO mysqldump -useuusuario -ptsuasenha --databases % a >>teste.sql O que significa: Par cada linha(O nome de suas bases de dados devem estar em cada linha do arquivo texto.txt) no arquivo texto.txt execute o mysqldump passando usuario e senha (em -useuusuario -ptsuasenha), designando em --datbases (com o parametro %a) o nome de sua base de dados. Ao fazer isto ele direcionará o resultado para o arquivo teste.sql. Atenção o simbolo >> é diferente de > e significa que o arquivo derá apendado. Enquanto que com o simbolo > o arquivo será sobreescrito e só salvará a última base de dados. É isso. Nota: Se for colocar sto em um arquivo de lote (.BAT) você dever´usar %%a em vez de %a.
  11. Denis Courcy

    Mysqldump

    Então gere um arquivo de lote para fazer esta tarefa(.bat), se você estiver usando windows ou shell se usando linux.
  12. Denis Courcy

    Mysqldump

    Você quer gerar 1 arquivo .sql para cada base ou todas as bases vão ficar no mesmo arquivo.sql? De qualquer forma gere um arquivo de lote para fazer esta tarefa(.bat), se você estiver usando windows ou shell se usando linux.
  13. Denis Courcy

    Erro na trigger

    Você não tocou os delimitadores de final de linha. (Os que informam que a instrução chegou ao fim). O correto é DELIMITER $$; /*o delimitador trocou de ; para $$. (pode se qualquer outro a seu criterio)*/ DROP TRIGGER `banco`.`nometrigger`$$ CREATE TRIGGER `banco`.`nometrigger` BEFORE/AFTER INSERT/UPDATE/DELETE on `sase`.`preco` FOR EACH ROW BEGIN /*aqui todas as instruções finalizam com ; */ END$$ DELIMITER ;$$/*o delimitador volta a ser ;*/
  14. execute esta parte do código e verifique se ele retorna o id que você quer select emp2.idEscritorio from empresa as emp2 where razao_social = (select emp3.associacao from empresa as emp3 where idEscritorio = ( select certidao_contratada.empresa_idEscritorio as idEscritorio from certidao_contratada inner join certidao_processada on certidao_contratada.cnpj_idCnpj = certidao_processada.certidao_contratada_cnpj_idCnpj where certidao_processada.certidao_contratada_scripts_idScript = 68 #script_id and certidao_processada.certidao_contratada_cnpj_idCnpj = '34.997.015/0001-98' #cnpj (da certidão) order by certidao_processada.dataHoraConcluido desc limit 1))
  15. Como voce esta tentando fazer a importação? Qual tipo do arquivo de origem? Qual ferramenta você está usando para importar? O que o Markus Magnus falou tem muito sentido, mas há várias questões em aberto.
  16. Leia no manual o comando "prepare". Ele é próprio para rodar selects pré-montadas em procedures. Não roda em funções nem em triggers.http://dev.mysql.com/doc/refman/5.1/en/prepare.html
  17. O MySQL não possui esta função. Se seu ID é numerico e inserido de forma crescente use a função MAX() para pegar o maior(e último) ID inserido. Se sua inteção é pegar este valor, logo após a insersão de um registro, para inseri-lo em outra tabela, você DEVE usar a função LAST_INSERT_ID(). Leia o manual do MySQL de sua versão, para mais detalhes.
  18. Revi sua pergunta. Conserte o termo ALERT TABLE para ALTER TABLE A tabela 'prdutos' em ALERT TABLE 'prdutos' existe ou é produtos e você comeu letra? Não é FOREING KEY. O termo correto é FOREIGN KEY
  19. Dê uma lida no livro http://www.altabooks.com.br/alto-desempenho-em-mysql.html
  20. Igoh Bruno Verifique se os atributos produtos_id na tabela prdutos e ID_pro na tabela produtos possuem as mesmas características de tipo, tamanho, nulabilidade, etc. Esta parace ser uma ligação um para de um para muitos dentro da mesma tabela de produtos, é isso mesmo?
  21. Constraints são restrições que tem por objetivo impedir que seu banco de dados fique inconsistente. O Engine InnoDB permite que você faça constraints no banco, através das cláusulas Foreign Key e Constraint, que impedem que acidentalmente se remova e/ou altere dados em uma tabela pai e acabe deixando a tabela filha sem vínculo. Um outro engine, muito utilizado pelo MySQL, é o MyISAM. Este engine não faz constraints ao nível do banco.
  22. Os atores(termo usado em UML) ALUNO, COLABORADOR, USUARIO e RESPONSÁEL são usuarios de seus sistema com direitos de acesso ao mesmo? Se sim, esles serão ESPECIALIZAÇÕES da tabela PESSOA. E neste caso os ATRIBUTOS LOGIN e SENHA deverão ficar na tabela PESSOA. E deverá existir umais um atributo em PESSOA para indicar o TIPO DE ESPECIALIZAÇÃO. Este atributo TIPO DE ESPECIALIZAÇÃO determina o PAPEL que o ator(PESSOA) representa no seu banco de dados. TABLE1 deverá ser uma tabela para PERFIL DE ACESSO que se ligará a pessoa através de um relacionamento UM PARA MUITOS. Pois um perfil poderá ser usado por uma ou mais pessoas Deverá haver uma outra tabela contendo os ACESSOS (que itens de menus de acesso poderão ser acessados). A tabela ACESSOS se ligará a tabela PERFIL DE ACESSO através de um relacionamento MUITOS PARA MUITOS, que implica a criação de outra tabela REL_PERFIL_ACESSOS (codigo perfil, codigo acesso), pois relacionamentos muitos para muitos em modo físico determinam sempre a existencia de uma tabela intermediária.
  23. Denis Courcy

    Informações do db

    SELECT clNome FROM minhatabela WHERE email = @email Onde @email deve ser substituido por uma variável do PHP. A parte do MySQL acaba aqui. Transferindo tópico para PHP.
  24. SELECT Titulo, COUNT(Titulo) AS qtd_vendas, SUM(quantidade) AS qtd_livros FROM livros_comprados GROUP BY Titulo
×
×
  • Criar Novo...