insert-trigger ( -- string )


Vocabulary
db.sqlite

Definition
USING: interpolate io.streams.string ;

IN: db.sqlite

: insert-trigger ( -- string )
[
"\n CREATE TRIGGER fki_${table-name}_${table-id}_${foreign-table-name}_${foreign-table-id}_id\n BEFORE INSERT ON ${table-name}\n FOR EACH ROW BEGIN\n SELECT RAISE(ROLLBACK, 'insert on table \"${table-name}\" violates foreign key constraint \"fki_${table-name}_$table-id}_${foreign-table-name}_${foreign-table-id}_id\"')\n WHERE (SELECT ${foreign-table-id} FROM ${foreign-table-name} WHERE ${foreign-table-id} = NEW.${table-id}) IS NULL;\n END;\n "
interpolate
] with-string-writer ;