By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE tablename (id INTEGER PRIMARY KEY, date TEXT, col TEXT);
✓
INSERT INTO TABLENAME (date, col) VALUES
('2022-01-01', 'sometext'),
('2022-02-01', 'moretext');
✓
SELECT * FROM tablename;
id | date | col |
---|---|---|
1 | 2022-01-01 | sometext |
2 | 2022-02-01 | moretext |
CREATE TRIGGER no_more_rows BEFORE INSERT ON tablename
BEGIN
SELECT RAISE(ABORT, 'No more rows allowed');
END;
✓
CREATE TRIGGER no_updates BEFORE UPDATE ON tablename
BEGIN
SELECT
CASE
WHEN NEW.col IS NOT old.col THEN RAISE(ABORT, 'Update of col is not allowed')
END;
END;
✓
INSERT INTO tablename (date, col) VALUES
('2022-03-01', 'newtext');
{ "code": "SQLITE_CONSTRAINT_TRIGGER" }
UPDATE tablename SET col = 'updated text' WHERE id = 1;
{ "code": "SQLITE_CONSTRAINT_TRIGGER" }
UPDATE tablename SET date = '2022-04-01' WHERE id = 1;
✓