CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

question sql : check option

TheMoskito
TheMoskito
Niveau 8
27 septembre 2009 à 10:27:16

Bonjour,
J'ai compris que la commande WITH CHECK OPTION permet d'assurer que les contraintes "WHERE" spécifiées dans la clause CREATE VIEW étaient bien respectées lors des INSERT et UPDATE à travers la vue créée. C'est bien ca ?
Maintenant, je me demande si ca vérifie que les contraintes relative à la table ou on insére (ou update) ainsi que sur les tables qui sont associées en jointure.

Exemple (j'ai écris ce qui suit, donc c'est peut etre sans intéret en fait)

CREATE OR REPLACE VIEW my_view
AS
SELECT quantite,prix
FROM commande, client, lig_cmd,article,fournisseur,magasin
WHERE (cmd_num=lcd_cmd)
AND (mag_num=cmd_mag)
AND (clt_num=cmd_clt)
AND (art_num=lcd_art)
AND (art_frs=frs_num)
WITH CHECK OPTION

Ma question reformulée : Sachant que "quantite","prix"
sont tous les 2 dans la table "commande" quand je vais faire un "INSERT INTO my_view VALUES (3,150)" est-ce que le CHEK OPTION va également vérifier les contraintes sur les tables qui sont en jointure (client, lig_cmd,article,fournisseur,magasin) ou pas :question:
Ou alors cela ne concerne que la table commande, et dans ce cas ma ligne with check option ne sert à rien :doute:

merci de m'éclairer un peu :merci:

godrik
godrik
Niveau 30
27 septembre 2009 à 16:26:34

http://www.devx.com/vb2themax/Tip/18579 est plutot clair. Ca sert a ce que quand tu modifie (ou insere ?) une valeur dans la vue a verifier que le tuple modifie appartient toujours a la vue. Je n'arrive pas a savoir si "with check option" fait parti du standard SQL ou est une extension.

Dans tout les cas, les contraintes sur les tables DOIVENT etre respecte.

TheMoskito
TheMoskito
Niveau 8
01 octobre 2009 à 13:46:04

Ok, par contre quand j'essaye de faire la maj, j'obtiens une erreur où on me parle de clef préservée...

Je pensais que pour qua le update/insert marche à travers la vue, il fallait que :
- l'insertion/update ne concerne qu'une table réelle OK
- la vue conserve une clef primaire. C'est peut etre là que ca coince.... j'ai Ajouté dans la sélection de la vue la clef primaire de la table. Donc je pensais que ce serait bon. Par contre, je n'ai dit nul part qu'il fallait la prendre comme une clef primaire dans la vue ? C'est normal, ou bien faut-uil l'écrire explicitement ?

C'est bien ca mon problème non :question:

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment