Hallo allemaal,

De titel zegt het eigenlijk al, is het mogelijk om met 1 script 2 kolommen uit verschillende tabellen aan te passen.

Bijvoorbeeld kolom ID staat in tabel 1 en
kolom ID staat in tabel 2.

Is het dan dus mogelijk als ik kolom ID uit tabel 1 aanpas, dat dan ook kolom ID uit tabel 2 mee veranderd.
Kan jij een praktijk situatie verzinnen waarbij het van toepassing is?

Ik niet, en zouden er situaties zijn waarbij je twee of meerdere query's om kan zetten naar één met joins, dan heb je met meerdere quey's veel meer controle op waar het fout gaat.

Kortom, jouw mening is jouw mening, maar ik heb er zeer grote bezwaren tegen, ik vind het niet thuishoren in transactional db systemen.

Zondermeer is het een mening en meningen verschillen af en toe, uh, vaak :-)

Ik ken wel praktijk voorbeelden overigens, maar het komt ook bij mij niet vaak voor. De enige die ik nu direct kan zeggen is een situatie waarin ik een tabel had waar nog een andere tabel aan gekoppeld was met extra gegevens. Omdat die extra gegevens nogal eens verschilde (in aantal gegevens die moesten worden opgeslagen) stond dat dus in een tabel met alleen id, kolom nummer en kolom waarde. De gebruiker kon echter het hele record tegelijk aanpassen. Daarbij dus in 1 update gegevens in de hoofd tabel en direct ook in de extra tabel. Dat kan je dan in meerdere queries doen, maar via een join ook in 1. Omdat je op id de join maakt, zie ik niet zozeer hoe dat fout zou kunnen gaan. In elk geval niet 'meer' fout dan wanneer je het in meerdere queries doet.
Ik zou zeggen, ga eens met een echt database systeem werken, en probeer het dan eens uit .....
Sorry Ger, maar dat is een zwakte bod. In veel andere systemen kan je ook niet met een auto increment werken en toch is dat een heel geaccepteerde feature van MySQL. Tot dusver heb ik je wel zien zeggen je er 'zeer grote bezwaren' tegen hebt maar heb ik die nog niet teruggevonden in je antwoorden. Leg het liever uit, dan kan ik er misschien ook nog iets van leren.
Auto increment is een DDL ding, dus wat mij betreft geen argument om mij een zwakte bod te verwijten.
Ik vind het in een aantal situaties belangrijk om generieke SQL te kunnen schrijven, en join updates werken niet in de meeste databasesystemen.

Maar het is gewoon heel onlogisch om met een left join update een waarde aan een kolom mee te geven terwijl die kolom niet bestaat. Als ie niet bestaat hoef je um ook niet te te updaten.



Toevoeging op 15/03/2014 22:20:39:

Auto increment is een DDL ding, dus wat mij betreft geen argument om mij een zwakte bod te verwijten.
Ik vind het in een aantal situaties belangrijk om generieke SQL te kunnen schrijven, en join updates werken niet in de meeste databasesystemen.

Maar het is gewoon heel onlogisch om met een left join update een waarde aan een kolom mee te geven terwijl die kolom niet bestaat. Als ie niet bestaat hoef je um ook niet te te updaten.

Er is hier wel een duidelijk causaal verband. Het datamodel deugt niet en daardoor moet je in de DML iets doen dat onlogisch lijkt (en dat feitelijk ook is). Eén code moet op twee plaatsen worden bijgewerkt, dus de UPDATE krijgt een vreemde constructie.

In een DML kun je het ware probleem nooit oplossen, maar doe je slechts aan symptoombestrijding. De discussie gaat dan niet over de beste oplossing, maar over de minst slechte oplossing.

Reageren