-
Total de itens
3.089 -
Registro em
-
Última visita
Tudo que Denis Courcy postou
-
Sim, faz. A Criação das tabelas, a ligação entre elas através de constraints e a administração dos dados (inclusão, alteração e consulta) estão documentadas no capítulo 6 do manual do MySQL (Versão 4.1 - tradução em português). Se houver dúvidas poste novamente e te ajudarei.
-
Sistema de Busca entre dois campos resultado 3 campo
pergunta respondeu ao manogaucho de Denis Courcy em MySQL
Minha duvida é criar o buscador ou pesquisa, já exixtem dados nestas tabelas, queria por exemplo que no menu categoria estivesse as categoria exixtentes exemplo tele-entrega e ferragem e no bairro exemplo BGV e Parque São Pedro, assim quando quise escolher por exemplo buscar tele-entragas bairro bgv , de o resultado da tabela cat_geral que tenha na cat_categoria e cat_bairro escolhidos pelo usuáro. Não sei se estou conseguindo me explicar, o grande detalhe que não tenho nada montado para pesquisa to começando do zero Este não é o forum apropriado para isto. Informe a linguagem que está sendo utilizada e transferirei o tópico para àquela área. -
Oi, 'Jetro' Você disse: O quê, exatamente, não funciona?
-
Sistema de Busca entre dois campos resultado 3 campo
pergunta respondeu ao manogaucho de Denis Courcy em MySQL
Oi, 'manogaucho' Se sua dúvida é somente na montagem do SQL para sua consulta, este seria assim: SELECT cat_geral FROM CATEGORIA WHERE cat_bairro = <seu elemento de pesquisa> AND cat_categoria = <seu elemento de pesquisa> -
Oi, 'sounobre' Você vai necessitar de identificadores para esta tabela. Um deles será a chave primária e indicará o tópico e o outro indicará que aquele tópico está vinculado a outro tópico. Seguindo seu exemplo: Ficaria assim: Identificador Pertence_a Nome Email Site Assunto Mensagem 1 1 xxx xxx xxx xxx xxx xxx 2 1 yyy yyy yyy yyy yyy yyy Eu penso que a solução com 3 tabelas seria melhor. 1 tabela de usuários (idusuario, nome, email, etc) 2 tabela de tópicos (idtopico, titulo, data/hora, idusuario, etc) 3 tabela de posts (idtopico, idpost, data/hora, idusuario, mensagem, etc). O relacionamento seria: Um usuário pode ter 0 ou N tópicos Um usuário pode ter 0 ou N posts um Tópico pode ter 1 ou N posts (O primeiro post é referente a mensagem do tópico e tem como usuário, obrigatóriamente o usuário que abriu o tópico).
-
Criando chaves estrangeiras após create table
pergunta respondeu ao Edi Carlos de Denis Courcy em MySQL
Oi, 'Edi Carlos' Faça assim: ALTER table teste ADD CONSTRAINT foreign key (cd_grupo) references grupo (CD_GRUPO) ON DELETE CASCADE ON UPDATE CASCADE); Fácil, não? Ver: 6.5.4. Sintaxe ALTER TABLE -
Oi, 'julgado' Dê uma lida nesta seção do manual do MySQL: 6.1.3. Caso Sensitivo nos Nomes
-
Oi, 'Dri.' Você está trabalhando com a versão enterprise (paga) do MySQL? Se não me falha a memória, se estiver não vai funcionar.
-
Oi, 'Diego Canindé' Aparentemente o erro pode estar na pontuação da última linha. Por padrão, quando escrevemos uma procedure ou trigger avisamos o motor do banco que o caractere para pontuação derá trocado. Então, escrevemos o cídigo usando o ponto e virgula normal e, para fechar a procedure/trigger informamos o caracter usado como substituição. O último comando é enviarmos ao motor mo MySQL que o caracter delimitador de comandos voltará a ser o ponto e vírgula. Exemplo, usando seu código: DELIMITER $$; DROP TRIGGER `saidaestoque`$$ create trigger `tg_insert_saidaestoque` after insert on `saidaestoque` for each row begin update cliente cli set cli.dtultcompra = date, cli.cdvendedor = new.cdvendedor where (cli.cdcliente = new.cdcliente) and ((cli.dtultcompra < new.dtsaida) or (cli.dtultcompra is null)); if new.nrorcamento > 0 then begin update orcamento orc set orc.status = 1 where (orc.nrorcamento = new.nrocamento); end if; END$$ DELIMITER;$$ No exemplo acima informei ao motor do MySQl que o caracter delimitedor de linha de comando será o "$$". Dentro do trigger informo o caracter ";" No final da criação do trigger informo o caracter "$$" E, por último, informo a nova mudança do caracter delimitador voltando a ser o ";"
-
Oi, 'sounobre' ! Você deve criar uma única tabela de posts que deverá referenciar a si mesma. É chamado de autorelacionamento. Ou, no máximo, duas tabelas. Uma para o tópico outra para os posts do tópico
-
Sim. Eles já existem na forma de foreign key. No momento você não sentirá deficiência na performance, mas quando a tabela tiver cheia, cada atualização terá o tempo aumentado porque terá que atualizar estes índices, além dos índices de foreign key. Assunto encerrado?
-
Oi, 'BetoGroo'! Modifique sua tabela assim: ALTER TABLE `delpol`.`telefone` MODIFY `id_tel` INT UNSIGNED NOT NULL DEFAULT 0, DROP INDEX telefone_FKIndex1, DROP INDEX telefone_FKIndex2; Os índices estão duplicados e causarão deficiência na performance desta tabela quando ela estiver carregada. Modifique o trigger para que fique assim:DELIMITER // CREATE TRIGGER `delpol`.`TR_INCREMENTA_id_tel` BEFORE INSERT ON `delpol`.`telefone` FOR EACH ROW BEGIN DECLARE num INTEGER; /* a função COALESCE retorna o primeiro elemento não nulo */ SET num = SELECT COALESCE((SELECT MAX(id_tel) FROM telefone WHERE rl_id_func = NEW.rl_id_func), 0); /* Não há a necessidade de testar o nulo pois a função coalesce já resolveu isto. E não há a necessidade de testar valor menor que zero pois o atributo id_tem é unsigned, ou seja, pertence ao conjunto dos números naturais */ IF (num = 0) THEN SET num = 1; ELSE SET num = num + 1; END IF; SET NEW.id_tel = num; END // Teste e informe, por favor.
-
Oi, 'BetoGroo' Você pode passar a estrutura de como você criou a tabela telefone, por favor?
-
Um trigger é um procedimento "embutido" em uma tabela, se é que posso definir assim. Este procedimento é disparado, a cada vez que a tabela sofre uma modificação (insert, update ou delete) conforme o tipo de trigger. O disparo pode ser antes que a modificação seja processada ou após. Sendo assim, respondendo sua pergunta, sim. um trigger reconhece um insert oriundo de uma procedure
-
Funciona, sim. E de forma mais eficiente. Faça assim: WHERE campo BETWEEN 1 AND 10
-
Oi, 'Vieri' A tabela proc existe, sim, no banco mysql. É responsável pela guarda das storage procedures. Sua estrutura é: CREATE TABLE `proc` ( `db` char(64) character set utf8 collate utf8_bin NOT NULL default '', `name` char(64) NOT NULL default '', `type` enum('FUNCTION','PROCEDURE') NOT NULL, `specific_name` char(64) NOT NULL default '', `language` enum('SQL') NOT NULL default 'SQL', `sql_data_access` enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NOT NULL default 'CONTAINS_SQL', `is_deterministic` enum('YES','NO') NOT NULL default 'NO', `security_type` enum('INVOKER','DEFINER') NOT NULL default 'DEFINER', `param_list` blob NOT NULL, `returns` char(64) NOT NULL default '', `body` longblob NOT NULL, `definer` char(77) character set utf8 collate utf8_bin NOT NULL default '', `created` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `modified` timestamp NOT NULL default '0000-00-00 00:00:00', `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') NOT NULL default '', `comment` char(64) character set utf8 collate utf8_bin NOT NULL default '', PRIMARY KEY (`db`,`name`,`type`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stored Procedures'
-
Em seu código de programa, se suas tabelas forem InnoDB (MyISAM não obedece), você pode enviar o comando de START TRANSACTION e, no final, enviar o comando de COMMIT se tudo foi OK ou ROLLBACK se algo deu errado. Estes comandos podem ser executados em uma Storage procedure, também.
-
Como somar o valor de vários produtos com a mesma coluna?
pergunta respondeu ao Tchello de Denis Courcy em MySQL
Oi, 'Tchello' Pesquise antes de perguntar. sua resposta está no tópico : (Resolvido) DUVIDA -
[Windows 7] Serviço do MySQL não sobe
pergunta respondeu ao Bruno Damasceno de Denis Courcy em MySQL
Oi, 'Bruno Damasceno' Não conheço o windows 7, ainda. Mas buscando referências na net, sobre a instalação do MySQl nesta versão do windows achei algo que pode ser o que você está procurando. Veja Installing Apache, PHP, MySQL, + phpMyAdmin on Windows 7 e atente para o ítem 8. Boa Sorte. -
Como fazer o relacionamento der 2 tabelas no MySQL Front 5
pergunta respondeu ao ANDRE_GUSTAVO de Denis Courcy em MySQL
Oi, 'ANDRE_GUSTAVO' ! O relacionamento entre duas tabelas pressupõe, sempre, que uma é dependente da outra. Ou seja a tabela dependente deve conter o atributo(campo) com a chave primária da tabela dominante. A tabela `tbl_horariosdisponiveis ` deveria conter o atributo `Id` da tabela `tbl_agendamentos`, pois para cada registro de `Id`.`tbl_agendamentos` deveria haver 0 ou muitos registros em `tbl_horariosdisponiveis `, mas isto não está ocorrendo na tabela que você postou. Reveja sua lógica. -
Oi, 'unisov' Você pode usar a expressão IN, desta forma: 'SELECT * FROM ibf_members, INNER JOIN ibf_member_extra ON ibf_members.id = ibf_member_extra.id WHERE mgroup IN (15, 16, 17) AND ORDER BY members_display_name ASC '; Ou pode usar a expressão BETWEEN, desta forma: 'SELECT * FROM ibf_members, INNER JOIN ibf_member_extra ON ibf_members.id = ibf_member_extra.id WHERE mgroup BETWEEN 15 AND 17 AND ORDER BY members_display_name ASC ';Neste caso, a expressão between vai pegar tudo o que compreender entre o menor valor (inclusive) e o maior valor(inclusive). Você pode continuar usando a forma como estava antes sem o INNER JOIN. Mas ele torna o código mais claro (explícito) do que está ocorrendo.
-
Oi,'Vieri'! O banco mysql é nativo do servidor de banco MySQL e é responsável pela guarda dos usuários, controles de acesso, etc. Tem certeza que quer mexer aí?
-
Oi, 'Vieri' use mysql -u root -p --port=3307
-
(Resolvido) Problema com "on delete set default"
pergunta respondeu ao Herofmb de Denis Courcy em MySQL
Oi, 'Herofmb'! Que versão do MySQl você está usando? Nas versões 5.0.x, 5.1.x e 6.x as possibilidades para ON DELETE são: RESTRICT | CASCADE | SET NULL | NO ACTION -
Oi,'mtp'! Por default o MySQL 5.x exige a criação de um usuário root@% para que possa ser acessado de outros terminais. Crie este usuário de dê todos os privilégios a ele. Se você não está conseguindo mais acessar o MySQl, troque a senha do root com as dicas deste tópico:Descobrir senha de banco mysql