Löschen aller nicht aktivierten Konten

  • Ich habe eine Frage zum Löschen aller nicht aktivierten Konten, die über 24 Stunden registriert wurden. Ich verwende MSSQL.

    Datenbankeinrichtung:

     account | usrActivated | regTime
    test           0         1314223187
     

    SQL-Abfrage:

     $time = 24 * (60 * 60);
    DROP FROM ACCOUNT_TBL_DETAIL WHERE usrActivated=0 AND regTime < $time
     

    Würde dies funktionieren, wenn ich eine solche Abfrage ausführen möchte? Löschen eines nicht aktivierten Kontos, das älter als 24 Stunden ist.

    14 July 2012
    benRollagSilentCoder
4 answers
  •  delete from ACCOUNT_TBL_DETAIL
    where usrActivated=0 AND regTime <= UNIX_TIMESTAMP(DATE_SUB(now(), INTERVAL 1 DAY));
     

    Angenommen, Sie arbeiten mit MySQL.

    dient zum Entfernen von Tabellen aus einer Datenbank . Löschen dient zum Entfernen von Datensätzen aus einer Tabelle.

    24 August 2011
    Marc B
  • Nicht wie Sie gesagt haben, da nichts gelöscht wird. Es sei denn, Sie haben bereits 1970 Konten angelegt. Versuchen Sie Folgendes:

     DELETE FROM ACCOUNT_TBL_DETAIL
    WHERE usrActivated = 0
      AND regTime < UNIX_TIMESTAMP(NOW() - INTERVAL 1 DAY)
     

    Vergessen Sie nicht, einen Testlauf durchzuführen (ersetzen Sie DELETE durch SELECT *.) ), um sicherzustellen, dass dies das tut, was Sie möchten.

    24 August 2011
    cdhowie
  • Nicht zu skeptisch klingen, aber ich schätze, Sie könnten am Ende jemanden löschen, der eine Sekunde vor der eigentlichen Ausführung dieser SQL registriert ist. Er / Sie befindet sich möglicherweise in der Mitte der Aktivierung.

    24 August 2011
    Arun
  • Nehmen wir an, ich melde mich um 23:59 Uhr an. Durchsuchen Sie die Kanäle, um etwas besseres anzusehen. Das Löschskript beginnt um 12:00 Uhr (1 Minute nach ich melde mich an). Ich entschied mich schließlich, Late Night mit Jimmy Fallon zu sehen. Ich bin zurück, um die Registrierung abzuschließen - versuchen Sie es zu aktivieren. Was würde dann passieren? - Arun 24. August 11 um 15:50 Uhr

    Sie könnten es schaffen, das Inaktivierte einzeln zu löschen. nicht nur einen Tag nach der Anmeldung, aber vielleicht 3 Tage? oder wie lange du willst. Es ist jedoch nicht so, als würde das Skript alle drei Tage für die gesamte Site ausgelöst. Es wäre nur eine Person. Wenn sich nicht mehrere Benutzer gleichzeitig anmelden, wäre dies das einzige Mal, wenn das Skript ausgelöst würde. Hoffen Sie, dass Ihre Frage beantwortet wird.

    20 October 2012
    S.L. BarthPeter Penzov