Как правильно заметили @forpas и @CL в комментариях, это была проблема триггера. Таким образом, ошибка была вызвана триггером в другой таблице, Groups
, которая была ссылочно связана с таблицей Users
через внешний ключ GroupMember
в таблице Groups
. Внешний ключ был установлен для каскадного удаления записей, соответствующих удаленному имени пользователя Users
, и, следовательно, активации триггера ON DELETE в таблице Groups
. Триггер DELETE имел агрегатную функцию MIN()
в своем предложении WHERE
, из-за чего в SQLite явно запрещено иметь агрегатные функции в предложении WHERE
- отсюда и сообщение об ошибке. Вот оригинальный код триггера (простите и за логические дыры в коде):
UPDATE Group_Members
SET Role = 'Admin'
WHERE JoinDate = MIN(JoinDate) AND GroupName = OLD.GroupName
Вот как я наконец исправил ситуацию:
UPDATE Group_Members
SET Role = 'Admin'
WHERE JoinDate = (SELECT MIN(JoinDate) FROM Group_Members WHERE GroupName = OLD.GroupName)