Maio 20, 2007
Pessoal nosso blog mudou de endereço! http://meiocodigo.com/
Neste post, vamos falar de como pegar o ultimo valor de uma sequência de PostgreSQL. Para entender melhor o que são sequências, veja uma aplicação delas no post Auto-incremento em PostgreSQL.
Uma das grandes aplicações do valor atual de uma sequência é a garantia de um banco relacional. Um registro que seja subdivido em várias entidades de um banco de dados precisa que a chave do registro seja passada com chave estrangeira para os diferentes registros nas diferentes entidades.
Para obter o valor atual de uma sequência(que teoricamente foi usado no ultimo registro, caso seja seguido o artigo citado acima) é usada a funcao currval. Como mostra o código abaixo:
SELECT currval('nome_da_sequencia');
Bem, é isso. Qualquer dúvida deixa como comentário.
1 Comentário |
SQL |
Link Permanente
Escrito por Vinícius Mendes
Maio 19, 2007
Pessoal nosso blog mudou de endereço! http://meiocodigo.com/
Hoje vamos falar de comparação de strings no PostgreSQL. Especificamente sobre a sensibilidade a caixa(maiúsculas e minúsculas), o que um grande empecilho à criação de sistemas de busca.
Este também foi outro grande problema que eu enfrentei. O operador LIKE é case-sensitive(sensivel a maiúsculas e minúsculas).
A solução foi simples e rápida. Existe um operador chamado ILIKE, o qual é case-insensitive.
Exemplo:
SELECT nome FROM empregado WHERE nome ILIKE 'vinicius';
O código acima retorna todos os registros onde o nome seja ‘vinicius’, ‘Vinicius’, ‘ViNiCiUs’, etc.
A sensibilidade à acentuação é um pouco mais complicada então vamos deixar para um próximo post.
Espero ter ajudado.
Deixar um comentário » |
SQL |
Link Permanente
Escrito por Vinícius Mendes
Maio 18, 2007
Pessoal nosso blog mudou de endereço! http://meiocodigo.com/
Neste post falarei a respeito de uma das dificuldades em se usar o gerenciador de banco de dados PostgreSQL. Uma das diferenças mais notáveis aos iniciantes no assunto: a falta da propriedade Auto-increment, a qual é largamente usada na criação de chaves primárias.
Para resolver esta falta, seguem abaixo duas formas de simular a mesma propriedade no PostgreSQL:
Para se criar um campo de uma tabela com valores sequenciais(adequado para chaves) existem duas formas. Uma delas leva a outra.
Vamos comecar pela mais simples, criar a sequencia no momento da criaçao da tabela através do tipo SERIAL:
CREATE TABLE pessoa
(id SERIAL PRIMARY KEY,
nome VARCHAR(100));
A forma acima simula o que eu vou exemplificar abaixo, a criação da sequencia manualmente:
CREATE SEQUENCE pessoa_id_seq;
CREATE TABLE pessoa
(id INTEGER PRIMARY KEY DEFAULT nextval(‘pessoa_id_seq’),
nome VARCHAR(100));
Atente para a igualdade entre o nome da sequencia e o parametro passado para a função nextval.
Bem, é isso, espero ter ajudado.
1 Comentário |
SQL |
Link Permanente
Escrito por Vinícius Mendes