[MySQL] Dry run?

Pagina: 1
Acties:

  • Gwaihir
  • Registratie: December 2002
  • Niet online
Voor de mensen met ruime SQL ervaring vast een makkelijke vraag om te beantwoorden. Doch, of het bestaat helaas niet, of ik weet niet de juiste zoektermen te verzinnen :(

Kan ik een SQL query ook in een soort van "dry run" mode draaien, om de effecten ervan te zien alvorens een eventuele vervelende fout over m'n data uit te storten? Met een "vervelende fout" bedoel ik dan geen syntax fout, want die geeft wel een error, maar een query die door incompleet denkwerk (de) verkeerde records verandert. Het gaat hier met name om UPDATE queries.

  • Rac-On
  • Registratie: November 2003
  • Niet online
Birdie schreef op vrijdag 11 maart 2005 @ 18:34:
Voor de mensen met ruime SQL ervaring vast een makkelijke vraag om te beantwoorden. Doch, of het bestaat helaas niet, of ik weet niet de juiste zoektermen te verzinnen :(

Kan ik een SQL query ook in een soort van "dry run" mode draaien, om de effecten ervan te zien alvorens een eventuele vervelende fout over m'n data uit te storten? Met een "vervelende fout" bedoel ik dan geen syntax fout, want die geeft wel een error, maar een query die door incompleet denkwerk (de) verkeerde records verandert. Het gaat hier met name om UPDATE queries.
ipv "update blabla from bla bla" eerst even "select * from bla bla" doen? Dat doe ik altans altijd.. Voor zover ik weet is er geen undo oid mogelijk (wel rollback, maar dat kan volgens mij alleen als je je query halverwegen afbreekt).

doet niet aan icons, usertitels of signatures


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10-05 18:52

gorgi_19

Kruimeltjes zijn weer op :9

En anders eerst een backup doen en hier in een testomgeving mee testen :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 10-05 05:42
Als je een geschikte versie van MySQL gebruikt met geschikte table storage (InnoDB en BerkeleyDB iirc) kun je gewoon een transactie gebruiken en die vervolgens cancellen.

Zie de MySQL Reference Manual over transacties voor details.

[ Voor 6% gewijzigd door Soultaker op 11-03-2005 18:50 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Niet devven op een liveserver met belangrijke gegeven wil ook wel eens helpen. Je gaat toch niet je software ontwerpen op de "echte" database? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Rac-On
  • Registratie: November 2003
  • Niet online
wat Gorgi zegt, "backup" en "testomgeving" zijn de toverwoorden in deze.. Hebben al menigmaal mijn carriere weten te redden ;)

doet niet aan icons, usertitels of signatures


  • Gwaihir
  • Registratie: December 2002
  • Niet online
Goh ja; waarom doe ik eigenlijk niet eerst een SELECT met dezelfde WHERE clause? Heb ik daar bijna een uur naar een "dry-run" flag zitten zoeken maar daar niet aan gedacht. Bedankt!

Ik doe van tijd tot tijd wat productie werkzaamheden rechtstreeks d.m.v. SQL queries op de database. Dit gaat dan om "iets nieuws", waarop het front-end nog niet is ingericht maar wat toch niet kan wachten. Vandaar. We hebben het hier over een relatief klein bedrijfje; tabellen lopen nu tot zo'n 2.500 records, dus zo'n werkwijze "kan nog" zonder al te grote risico's. Tuurlijk zijn er backups van die database (en worden aanpassing aan het front-end in een testomgeving met eigen database gestest), maar als ik de back-up erbij zou moeten trekken voel ik me zeker al niet happy meer.

[ Voor 12% gewijzigd door Gwaihir op 11-03-2005 19:44 ]


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 21:57

ripexx

bibs

Birdie schreef op vrijdag 11 maart 2005 @ 19:42:
Goh ja; waarom doe ik eigenlijk niet eerst een SELECT met dezelfde WHERE clause? Heb ik daar bijna een uur naar een "dry-run" flag zitten zoeken maar daar niet aan gedacht. Bedankt!
Gewoon eerst op een test omgeving en daarna pas op een productie omgeving, ook je queries niet typen maar met een script uitvoeren. Dat testen en dan pas uitvoeren! :)
Ik doe van tijd tot tijd wat productie werkzaamheden rechtstreeks d.m.v. SQL queries op de database. Dit gaat dan om "iets nieuws", waarop het front-end nog niet is ingericht maar wat toch niet kan wachten. Vandaar. We hebben het hier over een relatief klein bedrijfje; tabellen lopen nu tot zo'n 2.500 records, dus zo'n werkwijze "kan nog" zonder al te grote risico's. Tuurlijk zijn er backups van die database (en worden aanpassing aan het front-end in een testomgeving met eigen database gestest), maar als ik de back-up erbij zou moeten trekken voel ik me zeker al niet happy meer.
De grote van tabellen maakt niet uit. We draaien bij ons op het werk gewoon een test omgeving welke precies een dag achter loopt op de productie omgeving. Verder is het restoren van een backup ook geen moeite. Dus leer het je gewoon aan, want je gaat een keer de fout in en dan ben je echt niet blij. ;) En geloof me, menig een is het al eens overkomen.

[ Voor 3% gewijzigd door ripexx op 11-03-2005 19:50 ]

buit is binnen sukkel


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 09-05 23:44

alienfruit

the alien you never expected

Transactions?

  • PolarBear
  • Registratie: Februari 2001
  • Niet online
Dat heeft mySQL dus niet ... ;)

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 08-05 14:35

Tux

PolarBear schreef op zaterdag 12 maart 2005 @ 10:53:
[...]

Dat heeft mySQL dus niet ... ;)
Als je InnoDB tables gebruikt wel ;)

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 00:01
Tux schreef op zaterdag 12 maart 2005 @ 10:55:
[...]


Als je InnoDB tables gebruikt wel ;)
Nog steeds is dan een transactie niet gelijk aan een "dry run"of backup/restore. M.n. auto-numbering velden worden niet gerollbacked. (Is dit een nederlandse vervoeging?)

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 06-03 20:19

_Thanatos_

Ja, en kaal

offtopic:
jvdmeer, de correcte vervoeging is "gerollbackt". Zie Onze taal top 10, nummer 8 ;)

[ Voor 5% gewijzigd door _Thanatos_ op 12-03-2005 17:00 ]

日本!🎌

Pagina: 1