I don't think an extension is necessary. Consider: CREATE TABLE ... ( ..., creation_date default datetime(), modification_date as (datetime()) stored, ...); Should this not save the datetime of the INSERT in creation_date? Should this not save the datetime of the last update in modification_date? The creation_date may need protection against updates in a BEFORE UPDATE trigger that calls RAISE(ABORT, 'update to creation_date is not allowed').