Hello, when I use following sqlite3 commands, it returns error "cannot commit - no transaction is active" somewhere near the line "WHERE user IN (".... So I wanted to ask what to replace with what in order not to produce said error. I am not a developer and the ChatGPT (1, 2) is unable to provide working code. Can you please help?
said commands:
-- Start a transaction
BEGIN TRANSACTION;
-- Insert missing user_permission_overrides rows
INSERT INTO user_permission_overrides (room, user, write)
SELECT DISTINCT ru.room, u.id, TRUE
FROM room_users ru
JOIN users u ON ru.user = u.id
LEFT JOIN user_permission_overrides upo ON u.id = upo.user AND ru.room = upo.room
WHERE u.created < strftime('%s', '2024-07-02 00:49:26')
AND upo.user IS NULL;
-- Update existing user_permission_overrides rows
UPDATE user_permission_overrides
SET write = TRUE
WHERE user IN (
SELECT id
FROM users
WHERE created < strftime('%s', '2024-07-02 00:49:26')
);
-- Commit the transaction
COMMIT;
END;
list of tables, schema, pragma I have pasted here please.
I think that what helped was to remove "END;" line. It's an alias for COMMIT.