1

テーブルから行を削除しようとしましたが、試行するとエラーが発生します:#1241 - Operand should contain 1 column(s)

私の質問は:DELETE FROM Posts WHERE idPosts = 6;

投稿を削除できない理由がわかりません(idPosts = 6の投稿が存在します)

私もテーブルにトリガーがあります:

CREATE TRIGGER post_delete_update_lastPost_topic after delete on Posts for each row
BEGIN
  UPDATE Topics SET lastPost = (SELECT *
                                FROM Posts
                                WHERE idTopic = old.idTopic
                                ORDER BY datePosts DESC
                                LIMIT 1)
  WHERE idTopics = old.idTopic;
END $$
4

2 に答える 2

2

トリガーではSELECT *、lastPostに対応する列を選択する必要があります。これは次のようなものだと思いますSELECT postId

于 2012-05-07T16:14:17.747 に答える
1

UPDATEトピックSETlastPost=(SELECT * FROM Posts WHERE idTopic = old.idTopic ORDER BY datePosts DESC LIMIT 1)WHERE idTopics = old.idTopic;

SELECT*はいくつかの列を返しています。SELECTIDを試してください

于 2012-05-07T16:15:26.227 に答える