1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

SQLite, DEFAULT mit DATETIME('NOW')

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von enrem, 29.09.2010.

  1. enrem, 29.09.2010 #1
    enrem

    enrem Threadstarter Erfahrener Benutzer

    Beiträge:
    188
    Erhaltene Danke:
    13
    Registriert seit:
    17.01.2010
    Hallo,

    kann man in SQLite mit Hilfe von DEFAULT auch das aktuelle Datum und die Zeit übergeben oder funktioniert das nur über einen Trigger.

    Zur Zeit habe ich das so gelöst.

    Lösung mit Trigger :

    CREATE TABLE Messdaten (IDMessdaten INTEGER PRIMARY KEY, Messbild TEXT, Menge double, timeEnter DATE)

    CREATE TRIGGER insert_Messdaten_timeEnter AFTER INSERT ON Messdaten
    BEGIN
    UPDATE Messdaten SET timeEnter = datetime('now', 'localtime') WHERE rowid = new.rowid;
    END;

    Ohne Trigger mit DEFAULT geht leider nicht :

    CREATE TABLE Messdaten (IDMessdaten INTEGER PRIMARY KEY, Messbild TEXT, Menge double, Datum DATE DEFAULT DATETIME('NOW') )

    Hat jemand eine Ahnung warum das nicht geht?

    Gruß enrem
     
    Zuletzt bearbeitet: 30.09.2010
  2. andy572, 30.09.2010 #2
    andy572

    andy572 Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    5
    Registriert seit:
    05.09.2010
    Phone:
    Samsung Galaxy S3
    Eine Ahnung habe ich nicht, aber warum nimmst Du beim Insert/Update nicht einfach die date-Function vom SQLite ? Das spart den Trigger und unnötige Aufrufe, zumal das SQLite eh langsam ist auf älteren Phones, weshalb man das ganze nicht zu sehr aufblähen sollte ...
     
  3. enrem, 30.09.2010 #3
    enrem

    enrem Threadstarter Erfahrener Benutzer

    Beiträge:
    188
    Erhaltene Danke:
    13
    Registriert seit:
    17.01.2010
    Ich war neugierig da ich mich mit DEFAULT bei der Tabellenerzeugung beschäftigt habe. Mich wurmte es, das ich keine Funktion angeben konnte. So kam ich zum Trigger...

    Ich denke auch, dass die Datenbank durch den Trigger ausgebremst wird. Danke für deine Antwort.
     

Diese Seite empfehlen