2009-05-19 24 views
5

Souvent, lorsque je définis une vue dans Navicat je reçois le message suivant:Vues MySQL dans Navicat - Comment définir «clé primaire»?

xxx ne dispose pas d'une clé primaire. Les mises à jour de cette table sera fait en utilisant l'instruction pseudo suivante: ModifiedFieldsAndValues ​​MISE À JOUR xxx SET OÙ AllFieldsAndOldValues ​​LIMITE 1

Il est évident que je n'utilise que mes vues pour l'affichage données, pas mise à jour. Mais cela m'a rendu curieux:

Existe-t-il un moyen de définir une "clé primaire" ou un "index unique" sur une vue?

Répondre

0

son implicite que la vue utilise les indices et les clés primaires de sa table de base. Vous pouvez modifier la sémantique de la façon dont insertion et les mises à jour se produisent lors de leur utilisation par des vues en jouant avec les options VOIR CASCADE

See Updatable and Insertable Views

+2

Ok, mais la plupart des vues se composent de plusieurs tables qui sont reliés entre eux ... Est-ce automatiquement vérifier s'il existe une combinaison unique d'indices? – Ropstah

+0

@Ropstah, Pour cela, il a besoin d'un index de toute façon. Est-ce que 'show keys 'dans View' vous donne un ensemble vide? – Pacerier