SQLite Forum

Sqlite3 Trigger
Login
You talk about inserting and not inserting things, when what should actually be happening is that "I get an error which says ..." or "I do not get an error condition and the operation succeeds".

The fact that you think a record was inserted is irrelevant.

How about you try this trigger and tell what the error message is:

```
CREATE TRIGGER InsertfehlerPruefung BEFORE INSERT ON Pruefung 
BEGIN 
   SELECT RAISE(ABORT, 'not enough Fahrstundenminuten')
    WHERE NEW.theorie == 0 
      AND (
           SELECT SUM(dauer) 
             FROM fahrstunde 
            WHERE fahrstunde.schueleremail == NEW.email
          ) < 180;
   SELECT RAISE(ABORT, 'theorie is not 0')
    WHERE NEW.theorie IS NOT 0;
   SELECT RAISE(ABORT, 'sum(dauer) ge 180')
     WHEN (
      AND (
           SELECT SUM(dauer) 
             FROM fahrstunde 
            WHERE fahrstunde.schueleremail == NEW.email
          ) >= 180;
   SELECT RAISE(ABORT, 'sum(dauer) lt 180')
     WHEN (
           SELECT SUM(dauer) 
             FROM fahrstunde 
            WHERE fahrstunde.schueleremail == NEW.email
          ) < 180;
   SELECT RAISE(ABORT, 'sum(dauer) IS NULL')
     WHEN (
           SELECT SUM(dauer) 
             FROM fahrstunde 
            WHERE fahrstunde.schueleremail == NEW.email
          ) IS NULL;
END;
```

Because for that you MUST get an error.  I suspect that you are mistaken and making assumptions from unverified facts not in evidence.