Emanoel Tadeu-2 wrote:
> 
> 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
>>
> 


Correto. Utilize algo do tipo:
CREATE TRIGGER sua_trigger BEFORE INSERT OR UPDATE 
    ON sua_tabela FOR EACH ROW
    EXECUTE PROCEDURE sua_funcao ()

mas, em minha opinião, acho estranho você mandar incluir "banana" em um
campo e, por baixo dos panos, ele incluir "laranja". Não seria melhor
informar o erro?

[]s
Osvaldo

-- 
View this message in context: 
http://www.nabble.com/migrar-script-mySQL-para-PostgreSQL-tf3905465.html#a11141944
Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.

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

Responder a