Je crée une VUE sur 3 TABLES. Chaque TABLE a sa clé primaire. Cependant, dans la VUE afin d'avoir une clé primaire, je devrai utiliser une clé primaire composite (combinaison de clés primaires de 3 TABLES).Comment puis-je avoir une clé primaire dans une VUE (une clé qui ne dépend pas des tables sources)
Je voudrais cependant ajouter une colonne dans la vue en tant que clé primaire qui est créée juste pour le but de la vue. Dans le cadre de la définition de VIEW, elle devrait être UNIQUE (auto-incrément car il s'agirait principalement d'un INT). Comment puis-je atteindre cet objectif?
J'utilise MySQL 5.1
Paul, inspiré de votre pensée, concatène maintenant trois touches et en tire une clé UNIQUE. Honnêtement, le mien n'est pas une exigence de la clé PRIMAIRE mais celle d'une clé UNIQUE. Merci. – Kabeer
paul, si vous appliquez cela à une vue, par exemple, cela ne vous donnera pas nécessairement 'id' dans l'ordre. il vous donne un identifiant unique, mais pas dans l'ordre. une solution plutôt simple consiste à créer une table temporaire (via une insertion à partir d'une vue, par exemple) qui a un champ de numérotation automatique. Cela vous forcerait à recréer une table chaque fois que vos données changeraient, mais cela pourrait être facilement accompli en php ou java. –
Comme David Clifton a dit que vous ne pouvez pas créer une vue avec 'SELECT @rownum: = @ rownum + 1 comme ID, mytable. * DE (SELECT @rownum: = 0) r, mytable;' Vous auriez un '1351 '[error] (http://dev.mysql.com/doc/refman/5.6/en/error-messages-server.html#error_er_view_select_variable) – pconcepcion