首页 > 解决方案 > Mysql 触发器 ON INSERT + INNER JOIN 语法错误

问题描述

我有一个来自 uni 的任务,我需要模拟 Spotify 之类的东西(没有播放器)。
一些上下文:事情是我想创建一个触发器,以便在创建新的播放列表(表上的列playlist)时,将创建者用户(userID)设置为它的第一个追随者。该表followingPlaylist是一个中间表,记录了哪个用户关注了哪个播放列表。最重要的是,帐户有 2 种类型,artistsusers(因此有accounts一个保存帐户信息的表,users并分别artists保存accountIDuserIDartistID)。

我遇到的问题是mysql在这个查询中抛出了sintax错误,如果有人能帮助我,我会非常感激。这是查询:

CREATE TRIGGER primer_seguidor ON playlists
FOR INSERT AS
    INSERT INTO followingPlaylist
    (accountID, playlistID)
    SELECT
    playlists.playlistID, users.accountID FROM playlists
    INNER JOIN usuers ON playlists.userID = users.userID;

标签: mysqlsqltriggerssyntax-error

解决方案


CREATE TRIGGER primer_seguidor 
AFTER INSERT
ON playlists
FOR EACH ROW
    INSERT INTO followingPlaylist (accountID, playlistID)
    SELECT NEW.playlistID, users.accountID 
    FROM users 
    WHERE NEW.userID = users.userID;

PS。仅语法更正,无逻辑检查。

聚苯乙烯。建模小提琴


推荐阅读