this post was submitted on 02 Jul 2024
0 points (50.0% liked)

SQLite

82 readers
1 users here now

A community for SQLite, a small fast SQL database engine. https://www.sqlite.org/index.html

founded 8 months ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] hetzlemmingsworld@lemmings.world 1 points 3 months ago

I think that what helped was to remove "END;" line. It's an alias for COMMIT.