![]() |
|
||||
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Você está aqui: MySQL ::: Dicas & Truques ::: Stored Procedures (procedimentos armazenados), Functions (funções) e Triggers (gatilhos) |
||||||||||||||||
Como criar uma stored procedure do tipo FUNCTION usando o MySQL Query BrowserQuantidade de visualizações: 6500 vezes |
||||||||||||||||
O MySQL Query Browser é uma ferramenta de interface gráfica fornecida gratuitamente pela MySQL AB (os mesmos fabricantes do MySQL) e está disponível para Windows, Linux e Mac OS. Esta ferramenta nos permite criar e manipular bases de dados e tabelas no MySQL de forma visual, melhorando a produtividade. Se você ainda não conhece esta ferramenta e gostaria de saber como instalá-la, veja como fazê-lo na seção MySQL do site. O MySQL Query Browser também pode ser usado para a criação de stored procedures (funções e procedimentos que são embutidos em uma determinada base de dados). Nesta dica eu mostro como criar uma stored procedure do tipo FUNCTION. Uma stored procedure do tipo FUNCTION retorna um único valor e pode ser chamada dentro de qualquer instrução SQL, por exemplo, SELECT, UPDATE, INSERT, etc. Siga os seguintes passos para criar uma stored procedure do tipo FUNCTION no MySQL Query Browser (para esta dica eu usei a versão 1.2.12): a) Se você ainda não o fez, abra o MySQL Query Browser e escolha a base de dados desejada. Isso pode ser feito no menu Arquivo -> Change Default Schema. Em seguida selecione a base de dados e clique no botão OK. b) Vá no menu Script -> Create Stored Procedure / Function. Informe o nome para a função. Neste exemplo vamos usar o nome "somar". Clique o botão Create FUNCTION. Neste momento o MySQL Query Browser abrirá uma nova aba com o título somar e com o seguinte conteúdo:
Veja que este é um template para a FUNCTION que pedimos. Note que "estudos" é o nome da base de dados que estou usando no momento. Modifique o código gerado pelo MySQL Query Browser para a seguinte versão:
Agora nossa FUNCTION recebe dois INTs como argumento e retorna a soma dos dois como um INT. Clique o botão Execute para registrar a stored procedure na base de dados. c) Chegou a hora de testar a função. Vá em Arquivo -> New ResultSet Tab. Quando a janela de Query aparecer, digite o seguinte código:
Se tudo correu como esperado, você verá o valor 6 ser exibido na janela de resultados. Para testar a função em uma instrução SELECT, basta fazer algo parecido com:
Agora a FUNCTION somar() mostrará a soma dos valores máximo e mínimo da coluna id de uma tabela chamada livros. |
||||||||||||||||
![]() |
||||||||||||||||
MySQL ::: Dicas & Truques ::: Data e Hora |
||||||||
Como obter a data atual no MySQL usando as funções CURDATE(), CURRENT_DATE e CURRENT_DATE()Quantidade de visualizações: 37820 vezes |
||||||||
As funções CURDATE(), CURRENT_DATE e CURRENT_DATE() são usadas quando queremos obter a data atual do servidor MySQL. O valor retornado pode estar no formato 'YYYY-MM-DD' ou YYYYMMDD, dependendo se a função for chamada em um contexto string ou numérico. Veja:
O valor retornado será algo como 2008-03-30. Veja agora como usar CURDATE() em um contexto numérico:
O retorno será algo como 20080330. | ||||||||
MySQL ::: Dicas & Truques ::: Chaves, Índices e Restrições de Integridade Referencial |
||||||||||||
Como criar chaves primárias compostas em uma tabela do MySQLQuantidade de visualizações: 1419 vezes |
||||||||||||
Sabemos que o uso do atributo PRIMARY KEY (PK) permite marcar um campo de uma tabela MySQL como chave primária. Assim, este campo não poderá ter valores repetidos nem conter o valor NULL. Há, no entanto, situações nas quais precisamos marcar mais de um campo como chave primária, ou seja, a chave primária é composta de dois ou mais campos. Estas situações surgem nos cenários em que temos relacionamentos N x N (muitos para muitos) e uma tabela associativa que represente o relacionamento. Um exemplo disso é a relação autor-livro: um autor pode escrever vários livros e um livro pode ser escrito por mais um autor (vários autores em conjunto). Mas, o mesmo autor não pode aparecer no mesmo livro mais de uma vez. Vamos representar isso passo-a-passo. Comece criando a tabela autores. Veja o comando CREATE TABLE completo para esta tarefa:
Este comando CREATE TABLE vai gerar a seguinte estrutura: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment nome varchar(45) NO - email varchar(45) NO - Vamos agora criar a tabela livros. Veja o comando CREATE TABLE completo:
Este comando CREATE TABLE vai gerar a seguinte estrutura: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment titulo varchar(45) NO - paginas int(10) unsigned NO -
Este comando CREATE TABLE vai gerar a seguinte estrutura: Field Type Null Key Default Extra id_autor int(10) unsigned NO PRI - - id_livro int(10) unsigned NO PRI - - Agora experimente inserir dados nas tabelas autores e livros. Em seguida faça o relaciomento na tabela autores_livros. Tente repetir o id do autor para o mesmo livro. Imediatamente o MySQL recusará a inserção com a mensagem de erro: Error 1062: Duplicate entry '2-2' for key 1 E, como usamos chaves estrangeiras na tabela autores_livros, ao tentarmos excluir um livro já relacionado com um autor, teremos a seguinte mensagem de erro: Cannot delete or update a parent row: a foreign key constraint fails (`estudos/autores_livros`, CONSTRAINT `FK_autores_livros_2` FOREIGN KEY (`id_livro`) REFERENCES `livros` (`id`)) Veja mais dicas nesta seção para aprender mais sobre chaves estrangeiras e restrições de integridade referencial. | ||||||||||||
MySQL ::: Dicas & Truques ::: Chaves, Índices e Restrições de Integridade Referencial |
||||||||
Como excluir a chave primária de uma tabela MySQL usando o comando ALTER TABLE DROP PRIMARY KEYQuantidade de visualizações: 9390 vezes |
||||||||
Em algumas situações, talvez com o propósito de realizar uma manutenção em um determinado banco de dados MySQL, nós precisamos remover a chave primária de uma tabela. Para isso podemos usar o comando DDL ALTER TABLE DROP PRIMARY KEY. Comece analisando a seguinte tabela "livros":Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment titulo varchar(45) NO - paginas int(10) unsigned NO -
Sei. O comando não funcionou como esperávamos. O MySQL nos mostrou a seguinte mensagem de erro: Error 1075: Incorrect table definition; there can be only one auto column and it must be defined as a key. Este erro nos informa de que uma tabela MySQL só pode ter uma coluna auto-incremento, e esta deve, obrigatoriamente, ser marcada como chave primária. Assim, precisamos remover o atributo auto-incrememento antes. Veja:
Pronto. Agora que já retiramos o auto-incremento do campo, o comando ALTER TABLE DROP PRIMARY KEY já pode ser disparado novamente. Você deverá ter um cuidado especial se o campo que você vai remover o auto-incremento e chave primária estiver sendo referenciado como chave estrangeira em outra(s) tabela(s). Analise estas situações antes. É próvável que o MySQL exiba um monte de mensagens de erro até você descobrir a causa da falha do comando ALTER TABLE DROP PRIMARY KEY. | ||||||||
Veja mais Dicas e truques de MySQL |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |