Ik zit met een probleem dat ik een VIEW van een database "editable" wil maken. Daarmee bedoel ik dat als je iets in die view verandert deze veranderingen ook feitelijk worden doorgevoerd in echte tabellen waarop de view gebaseerd is. Ik had begrepen dat je dit moest doen met behulp van "stored procedures". Maar ik heb echt geen flauw idee hoe
Het is een beetje afhankelijk van de database die je gebruikt. Kijk eens in de handleiding en lees het hoofdstukje over RULE door.
Verwijderd
Ik ga maar ff uit van SQL server, maar dat vermeld je niet...
Meestal gaat het updaten vanzelf goed, maar mocht dat niet gaan moet je een INSTEAD OF UPDATE trigger maken, die wordt aangeroepen op het moment dat je de view update. Dan moet je handmatig de nieuwe waardes opvragen (kan met de virtuele tabel 'inserted'), en dan kan je die waardes zelf weer in de achterligende tabellen inserten met een simpel SQL statement...
Je kan het bovenstaande ook in een sp doen, maar dan moet je die wel aanroepen vanuit de Trigger, die moet in ieder geval!
Meestal gaat het updaten vanzelf goed, maar mocht dat niet gaan moet je een INSTEAD OF UPDATE trigger maken, die wordt aangeroepen op het moment dat je de view update. Dan moet je handmatig de nieuwe waardes opvragen (kan met de virtuele tabel 'inserted'), en dan kan je die waardes zelf weer in de achterligende tabellen inserten met een simpel SQL statement...
Je kan het bovenstaande ook in een sp doen, maar dan moet je die wel aanroepen vanuit de Trigger, die moet in ieder geval!
Volgens mij is het niet echt de bedoeling dat je views kan editen...
crisis. heb je het woord "view" wel eens vertaald?
je hoort de brondata van je view te editen, niet de view.
je hoort de brondata van je view te editen, niet de view.
Uit: A Guide to The SQL Standard, 4th edition
. In ieder geval moet de from clause maar 1 table bevatten.
Het hangt uiteraard van het DBMS af, of dit ook daadwerkelijk allemaal kan en overeenkomt met de SQL standaard.
tip: koop een goed boek als je serieus met deze stuff aan de slag gaat
en die voorwaarden mag je zelf ergens opzoekenInstead, all that happens when a view is created is that the definition of that view is remembered in some way.
...
Once a view has been created, to the user it is as if there really were a table in the database with the specified name.
...
The system will translate this expression, involving the view, into an equivalent expression involving the underlying table instead.
...
The translation process just illustrated applies to the update operations also.
...
The basic point is that not all views are updatable
...
We say that a view is SQL-Updatable if and only if all of the following conditions 1-8 hold:
Het hangt uiteraard van het DBMS af, of dit ook daadwerkelijk allemaal kan en overeenkomt met de SQL standaard.
tip: koop een goed boek als je serieus met deze stuff aan de slag gaat
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Nee, dat dacht ik ook.Op dinsdag 08 januari 2002 17:44 schreef ACM het volgende:
Volgens mij is het niet echt de bedoeling dat je views kan editen...
https://fgheysels.github.io/
Singular views zijn wel te updaten met update. (Meestal dan)Op dinsdag 08 januari 2002 17:44 schreef ACM het volgende:
Volgens mij is het niet echt de bedoeling dat je views kan editen...
Hierdoor kan je namelijk een soort rechten systeem genereren dat bepaalde gebruikers maar bij bepaalde gegevens mag komen.
Echter worden views (erg) vaak voor andere dingen misbruikt.
Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR
En soms heeft een gebruiker daar geen recht op, maar wel rechten op een view, en dan kan de gebruiker daar WEL updates op uitvoeren.Op dinsdag 08 januari 2002 17:47 schreef Baviaan het volgende:
crisis. heb je het woord "view" wel eens vertaald?
je hoort de brondata van je view te editen, niet de view.
Het woord view is niet bedoeld dat je er alleen maar naar kijkt, Het woord is bedoeld in de trend van dat het een gezichtspunt is naar een table waarop je niet volledige rechten bezit, Denk aan bepaalde gegevens die een normale werknemer niet mag zien, maar andere gegevens ervan wel mag zien, dan zou je dit kunnen gaan opsplitsen in twee verschillende tabellen, maar dat werkt de normalisatie weer tegen, met views is dit op te vangen. Hierdoor geef je een database gebruiker de juiste views op tabellen wat die gebruiker MAG zien van dat tabel.
Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR
Another lost sheep in the big wide world, maybe this sheep-entity will find his way eventually.Op dinsdag 08 januari 2002 20:49 schreef whoami het volgende:
[..]
Nee, dat dacht ik ook.
Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR
Tsja, er zijn altijd uitzonderingenOp dinsdag 08 januari 2002 21:14 schreef dusty het volgende:
Singular views zijn wel te updaten met update. (Meestal dan)
Wanneer wordt een view misbruikt?Echter worden views (erg) vaak voor andere dingen misbruikt.
Wel een arrogant kerelke he, gij?Op dinsdag 08 januari 2002 21:23 schreef dusty het volgende:
[..]
Another lost sheep in the big wide world, maybe this sheep-entity will find his way eventually.
https://fgheysels.github.io/
als een gebruiker recht heeft op alle tabellen maar besluit om zijn view toch maar te gebruiken omdat het makkelijker is immers zit daar al de combinatie van 5 tabellen in, die combineert hij dan met een andere tabel waaruit hij zijn gegevens haalt, terwijl hij als hij direct uit 3 base-tabellen zijn gegevens trekt hij dezelfde resultaat krijgt, maar dan 'iets' sneller.Op dinsdag 08 januari 2002 21:27 schreef ACM het volgende:
[..]
Wanneer wordt een view misbruikt?
Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR
Het is nog steeds dinsdag dus het is nog steeds mijn beurt, morgen is het de beurt aan ACM, hij is vééééééél erger dan mij, pas maar op!Op dinsdag 08 januari 2002 21:34 schreef whoami het volgende:
[..]
Wel een arrogant kerelke he, gij?
Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR
Hmm.. alle gevoel van tijd verloren? You live in the past.Op dinsdag 08 januari 2002 21:37 schreef dusty het volgende:
[..]
Het is nog maandag dus het is nog steeds mijn beurt, morgen is het de beurt aan ACM, hij is vééééééél erger dan mij, pas maar op!
https://fgheysels.github.io/
Gewoon te drukOp dinsdag 08 januari 2002 21:39 schreef whoami het volgende:
[..]
Hmm.. alle gevoel van tijd verloren? You live in the past.
Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR
Hoezo? Zie in je profile dat je manager bent... Managers hebben het nooit druk, ze doen maar alsof.Op dinsdag 08 januari 2002 21:39 schreef dusty het volgende:
[..]
Gewoon te druk
https://fgheysels.github.io/
Mmmm.. toch maar eens mijn profiel updaten, ben ondertussen geen manager meerOp dinsdag 08 januari 2002 21:41 schreef whoami het volgende:
[..]
Hoezo? Zie in je profile dat je manager bent... Managers hebben het nooit druk, ze doen maar alsof.
Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR
manager,directeur,aandeelhouder,werknemer,voorzitter vd raad van commissarissen, voorzitter van de OR enz enzOp dinsdag 08 januari 2002 21:45 schreef dusty het volgende:
[..]
Mmmm.. toch maar eens mijn profiel updaten, ben ondertussen geen manager meer
en kantine jufrouw
Doet iets met Cloud (MS/IBM)
Ok, slet. Dat lijkt er al wat meer op.Op dinsdag 08 januari 2002 21:45 schreef dusty het volgende:
[..]
Mmmm.. toch maar eens mijn profiel updaten, ben ondertussen geen manager meer
Misschien back on topic.
Tja, als je er eens goed over nadenkt dan moeten views eigenlijk wel editable zijn. Heb eigenlijk nog nooit serieus met views gewerkt. Wordt dat nog veel gebruikt eigenlijk?
https://fgheysels.github.io/
Sommige views kunnen niet editable zijn. De SQL standaard geeft een prachtig lijstje voorwaarden waaraan een view moet voldoen om editable te zijn. In m'n eerdere post staat dat vermeldt (de voorwaarden vond ik teveel tikkenwhoami: Tja, als je er eens goed over nadenkt dan moeten views eigenlijk wel editable zijn.
Voor gedistribueerde database systemen kan het wel handig zijn...Heb eigenlijk nog nooit serieus met views gewerkt. Wordt dat nog veel gebruikt eigenlijk?
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Pagina: 1