On 02-02-2012 20:23, Leandro Guimarães Faria Corce DUTRA wrote: > Le 2012-F-2 16h50, Euler Taveira de Oliveira a écrit : >> On 02-02-2012 12:51, Guimarães Faria Corcete DUTRA, Leandro wrote: >>> Então são duas limitações sobrepostas: catálogo *e* visões? >>> >> *ou*. > > Já que sou lesado, traduzo em miúdos: não se podem criar restrições de > integridade nem no catálogo, nem em visões. No caso, é uma visão no catálogo, > portanto as duas limitações se aplicam. > > >> No catálogo eu até entendo que seria plausível mas em visões? Visões nem >> mesmo >> tem restrições! > > Mas não é justamente o que discutimos? A possibilidade de declarar > restrições… > Coloquialmente, eu definiria visão como "nomear uma consulta". Como seria ter restrições (de integridade) em uma consulta (aka visão)?
> >> Não estou dizendo que seria impossível mas me parece que seria >> mais uma gambiarra. > > Gambiarra por quê? Exatamente como no caso do catálogo, está previsto no > modelo e é útil, como demonstra o caso ‘em tela’ (como gostam de dizer no > governo…) E o Oracle faz, embora isso não seja um bom argumento… > Como criar uma restrição na coluna abc da visão abaixo? CREATE VIEW foo AS SELECT a, CASE WHEN b * c = 2 THEN 10 ELSE 20 END AS abc FROM bar WHERE d > 123; Você precisa de pelo menos uma restrição de unicidade para conseguir relacionar com a visão foo (criar uma chave estrangeira na coluna abc da visão foo). Assim, não vejo como fazer isso sem muita complexidade (na linguagem SQL) e esforço (que não vale a pena no momento -- temos muitas coisas mais interessantes para implementar do que isso). -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
