Определитесь, вам нужна read-only таблица или строка в таблице?
Для таблицы решение дал
Boris Korobkov
Для строки тоже можно извратиться:
- добавляете в таблицу колонку `readonly` BOOL DEFAULT 0;
- создаёте триггер BEFORE UPDATE, который проверяет значение колонки `readonly` и, если там стоит 1, то заменяет все NEW.поля, кроме NEW.`readonly` на соответствующие OLD.поля;
- создаёте триггер BEFORE DELETE, который проверяет значение колонки `readonly` и, если там стоит 1, то выбрасывает ошибку;
- меняете значения `readonly` на 1 в строках, которые надо закрыть от изменения.