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
