Ergebnis 1 bis 6 von 6

Thema: Mist gebaut, alle Werte in Spalte auf 0 gesetzt, Trigger umkehren

  1. #1
    Interessierte/r
    Registriert seit
    03.02.2010
    Ort
    Wanne-Eickel
    Alter
    48
    Beiträge
    125
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard Mist gebaut, alle Werte in Spalte auf 0 gesetzt, Trigger umkehren

    Hab gerade voll den Bockmist geschossen und alle Werte in einer Spalte auf 0 gesetzt.

    Backup scheidet aus, da ich heute bereits fast 1500 neue Datensätze zugefügt habe (ich weiß, man kann auch zwischendurch sichern - weiß ich jetzt und tue es auch).

    Glücklicherweise habe ich einen Trigger mitlaufen, so das die alten Werte noch vorhanden sind.
    PHP-Code:
    INSERT INTO `doghistory` (`id`, `event`, `entity`, `entity_id`, `entity_property`, `value_before`, `value_after`, `last_change_by`, `created`) VALUES
    (193253'update''dog''17216''register''LO124815''0''admin''2014-06-21 12:49:20'), 
    wobei VALUES = id/befehl/tabelle/id_in_tabelle/spalte_in_tabelle/Wert_vorher/Wert_nachher
    so sieht eine Zeile (von fast 2000) aus .

    Hab ich eine Chance, das zurück zu wandeln und wenn ja wie genau (mag nicht experimentieren)?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Bandit
    Gast

    Standard AW: Mist gebaut, alle Werte in Spalte auf 0 gesetzt, Trigger umkehren

    Wenn der alte Wert in value_before steht, dann sollte das mit einem Update kein Problem sein.

    Update `doghistory` set `value_after` = `value_before`

    Aber vorher die Tabelle einmal sichern

  3. #3
    Interessierte/r
    Themenstarter

    Registriert seit
    03.02.2010
    Ort
    Wanne-Eickel
    Alter
    48
    Beiträge
    125
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Mist gebaut, alle Werte in Spalte auf 0 gesetzt, Trigger umkehren

    erstmal danke für die schnelle Antwort! Schwitz Blut und Wasser...

    Das sind zwei verschiedene Tabellen (sorry, vergessen zu erwähnen). Die in der ich geändert habe ist die "dog" Spalte "register". Der Trigger ist die doghistory

    Ergo müsste ich die beiden join"en"... ???


    PHP-Code:
    UPDATE dog AS a
    INNER JOIN doghistory 
    AS b
    ON a
    .id b.entity_id
    SET 
    `a.register` = `b.value_before`
    WHERE `event` = 'update'
    AND `entity` = 'dog'
    AND `entity_property` = 'register'
    AND `value_after` = '0'
    AND `last_change_by` = 'admin'
    AND `created` = '2014-06-21 14:49:20' 
    kann ich das so wagen?

  4. #4
    Bandit
    Gast

    Standard AW: Mist gebaut, alle Werte in Spalte auf 0 gesetzt, Trigger umkehren

    Könntest du so wagen, aber immer auf eigene Gefahr und nicht ohne Backup

  5. #5
    Interessierte/r
    Themenstarter

    Registriert seit
    03.02.2010
    Ort
    Wanne-Eickel
    Alter
    48
    Beiträge
    125
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Mist gebaut, alle Werte in Spalte auf 0 gesetzt, Trigger umkehren

    nö, so gehts nicht ...
    Code:
    UPDATE `dog` 
    LEFT JOIN `doghistory` 
    ON `dog.id` = `doghistory.entity_id`
    SET `dog.register` = `doghistory.value_before`
    WHERE `doghistory.event` = 'update'
    AND `doghistory.entity` = 'dog'
    AND `doghistory.entity_property` = 'register'
    AND `doghistory.value_after` = '0'
    AND `doghistory.last_change_by` = 'admin'
    AND `doghistory.created` = '2014-06-21 14:49:20'
    lässt mich mit der Fehlermeldung
    Code:
    #1054 - Unknown column 'dog.register' in 'field list'
    stehen und
    Code:
    UPDATE dog 
    LEFT JOIN doghistory 
    ON dog.id = doghistory.entity_id
    SET dog.register = doghistory.value_before
    WHERE doghistory.event = 'update'
    AND doghistory.entity = 'dog'
    AND doghistory.entity_property = 'register'
    AND doghistory.value_after = '0'
    AND doghistory.last_change_by = 'admin'
    AND doghistory.created = '2014-06-21 14:49:20'
    gibt mir ein
    Code:
    #1442 - Can't update table 'doghistory' in stored function/trigger  because it is already used by statement which invoked this stored  function/trigger.
    scheint nach googeln ein Trigger-Problem zu sein ....

    werd ich wohl über notepad ein manuelles update erstellen müssen

  6. #6
    Interessierte/r
    Themenstarter

    Registriert seit
    03.02.2010
    Ort
    Wanne-Eickel
    Alter
    48
    Beiträge
    125
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Mist gebaut, alle Werte in Spalte auf 0 gesetzt, Trigger umkehren

    für die, denen mal das gleiche Malheur passiert:

    Die obigen Update zum SELECT umgewandelt
    Code:
    SELECT *
    FROM `doghistory`
    WHERE `event` = 'update'
    AND `entity` LIKE 'dog'
    AND `entity_property` LIKE 'register'
    AND `value_before` != ''
    AND `value_after` LIKE '0'
    AND `created` = '2014-06-21 14:49:20'
    ORDER BY `doghistory`.`id` ASC
    Code:
    foreach($conn->query($sql) as $row){
    echo "UPDATE dog SET register = '".$row['value_before']."' WHERE id = ".$row['entity_id']."<br>";
    }
    ABER "mein" Trigger hat hier eine "Macke" (oder eher wahrscheinlich nicht gut geproggt): er hat sich durch das direkte arbeiten in der Datenbank als bearbeitenden User den jeweils letzten genommen, so das nicht überall "admin" der Bearbeiter war - durch die anderen WHERE Klauseln konnte ich jedoch entsprechend das nötige rausholen.
    Viel Arbeit für Blödheit

Ähnliche Themen

  1. MySQL Trigger ID Löschen
    Von Streuselchen im Forum Datenbank Forum - MySQL und andere Datenbanksoftware
    Antworten: 5
    Letzter Beitrag: 10.01.2015, 15:17
  2. Trigger Problem
    Von Unregistriert im Forum Datenbank Forum - MySQL und andere Datenbanksoftware
    Antworten: 9
    Letzter Beitrag: 17.08.2013, 17:53
  3. mehrere Werte aus einer Spalte...?
    Von Unregistriert im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 6
    Letzter Beitrag: 09.01.2009, 13:34
  4. Applet Werte übergeben und Werte zurückgeben
    Von martin80 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 08.03.2007, 19:11
  5. Array umkehren
    Von manthafahrer0_0 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 12
    Letzter Beitrag: 17.01.2006, 11:05

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •