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

Responder a