deu certo aqui, mas como ai dar erro ao se tentar incluir um valor que não
satisfaça a condição, terei q criar uma trigger q chame uma função para
colocar o valor em zero nesse caso. porém a trigger deve ser disparada antes
do insert/update correto?

Em 12/06/07, Osvaldo Rosario Kussama <[EMAIL PROTECTED]>
escreveu:

Emanoel Tadeu escreveu:
> Prezados,
>
> atualmente um sistema nosso aqui utiliza dois bancos de dados. Um mysql
> e outro postgresql. Recentemente chegmos a conclusão de que era melhor
> reunir tudo em um só banco,o postgresql. O mysql é utilizado em um data
> center que a empresa aluga, enquanto que o postgre é utilizado aqui
> mesmo com a empresa.
>
> Recebi somente os scripts das tabelas do mysql para gerar as mesmas no
> postgresql. no período em que estivermos realizando a migração, os dados
> que antes eram destinados somente ao mysql será colocado tambem no
> postgresql, para irmos testando aos poucos.
>
> Com isso, num "create table" em um script tem o seguinte:
>
> CLI_PRT1` smallint(5) unsigned NOT NULL default '0',
>
> Pesquisando sobre essa linha vi que unsigned não permite que valores
> abaixo de zero sejam inseridos. Por exemlo, caso se tente inserir o
> valor  -52, o valor de fato a ser inserido é zero.
>
> Como fazer isso de modo equivalente no postgresql? alguém pode me dar
> uma luz, por onde devo ir?
>


Para não permitir que sejam inseridos valores negativos utilize a
cláusula CHECK na definição do campo. Veja column_constraint em:
http://www.postgresql.org/docs/8.2/interactive/sql-createtable.html
mas esta opção dá erro ao se tentar incluir um valor que não satisfaça a
condição.

Para alterar o valor a ser inserido caso o valor fornecido não satisfaça
a uma dada condição (no caso >= 0) utilize uma função/trigger no INSERT
e/ou UPDATE.
http://www.postgresql.org/docs/8.2/interactive/sql-createtrigger.html

[]s
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




--
--------------------------------------------------
Emanoel Tadeu
Analista de Sistemas
CheckRota - Rastreamento e Gestão de Frotas
(85) 3261-7982
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a