getPDO(); $pdo->exec('ALTER TABLE posts ADD COLUMN favCount INTEGER NOT NULL DEFAULT 0'); $pdo->exec('CREATE TABLE favorites ( id INTEGER PRIMARY KEY NOT NULL, userId INTEGER NOT NULL, postId INTEGER NOT NULL, UNIQUE (userId, postId) )'); $pdo->exec(' CREATE TRIGGER favoritesDelete BEFORE DELETE ON favorites FOR EACH ROW BEGIN UPDATE posts SET favCount = favCount - 1 WHERE posts.id = OLD.postId; END'); $pdo->exec(' CREATE TRIGGER favoritesInsert AFTER INSERT ON favorites FOR EACH ROW BEGIN UPDATE posts SET favCount = favCount + 1 WHERE posts.id = NEW.postId; END'); $pdo->exec(' CREATE TRIGGER favoritesUpdate AFTER UPDATE ON favorites FOR EACH ROW BEGIN UPDATE posts SET favCount = favCount + 1 WHERE posts.id = NEW.postId; UPDATE posts SET favCount = favCount - 1 WHERE posts.id = NEW.postId; END'); } }