Also, zuerst werden die Generatoren erstellt, dann die Tabellen und anschließend die Trigger?!
Ich würde sagen, das ist die richtige Reihenfolge.
Kannst ja mal schauen, ob die Tabelle "contact2group" angelegt wurde, nachdem das Script mit Fehler abgebrochen wurde.
2 Dinge fallen mir noch auf:
a.) es wurden keine Primärschlüssel gesetzt; das ist aber sehr wichtig.
b.) Die Tabelle "contact2group" hat ein überflüssiges und störendes Feld "Id"
SQL-Code:
CREATE TABLE "contact2group"
(
"contact_id" Integer,
"group_id" Integer
);
Ohne dieses Feld braucht man keinen Trigger.
Die Felder "contact_id" und "group_id" reichen aus um die Verknüpfung zwischen "contact" und "group" eindeutig zu bestimmen.