Inserts updates deletes nur testen OHNE ausfuehren

hiho Experten,

ich wuerde gerne folgendes machen:

bei einem INSERT oder UPDATE oder DELETE auf einer MySQL Datenbank die vorher beschriebenen Optionen auf der Datenbank _nur_ testen. Das heisst den wirklichen befehl a MySQL schicken, und von MySQL die Information zurueckbekommen, wieviele Felder aufgrund dieser Query geloescht, eingefuegt, geupdated werden wuerden (affected rows), ohne das eine physikalische Aenderung an der Datenbank vorgenommen wird.

Natuerlich wuerden sich auch durch einen SELECT die betroffenen Felder ausfindig machen lassen, aber ich wuerde gerne den wirklichen Befehl testen, um dabei dann auch gleich Hinweise zu ergattern, ob der an der DB arbeitende Mensch die Zugriffsrechte fuer die erwuenschte Operation hat.

Ich _schaetze_ das sich das auch durch einen ROLLBACK loesen lassen wuerde, was ich aber eher unschoen finde, da dies eine physikalische Aenderung an den Daten waere, die ich dann rueckgaengig machen muesste (wuerde auch gehen, damit steigt aber die Anzahl der Zugriffe auf die Datenbank, was ich unschoen finde).

gibt es fuer dieses elemetare Problem vielleicht schon eine fertige MySQL Operation?

gruetzi josh

Hallo,

dazu brauchst Du doch nur den WHERE-Teil an ein SELECT count(*) anzuhängen.

Gruß

Peter

Hi!

dazu brauchst Du doch nur den WHERE-Teil an ein SELECT
count(*) anzuhängen.

Zum Berechtigungen testen würde ich dies eher nicht empfehlen

Ich hab jetzt wenig Ahnung von MySQL, aber die Berechtigungen müßten entweder irgendwo hinterlegt sein bzw. könnte man das DML-Statement nur mal parsen bzw. validieren - falls dies unter MySQL irgendwie möglich ist …

Grüße,
Tomh

‚physikalische‘ bitte ersetzen mit ‚physische‘
oje,
im Eifer des Gefechts einen sehr schoenen fehler gleich zweimal eingebaut:

also es heisst natuerlich nicht physikalisch sondern physisch…wie peinlich!

gruetzi josh