【问题标题】:SQLite Trigger does not work1SQLite 触发器不起作用1
【发布时间】:2013-06-01 16:19:26
【问题描述】:

我正在尝试使用触发器来插入一个值。我有 2 个表连接到一起收集问题和论文。 问题有这些列(question_id 主键,correct_answer varchar),我已经插入了值

插入问题值 (1,"B")

论文有这些列(Question_id 外键,student_answer varchare,分数整数)

如果 student_answer 等于 correct_answer 然后插入到分数 1 中,则触发器应该在插入纸后工作,否则 0

这是我的触发器代码

      create trigger if not exists insert_score after insert on paper
      for each row
      when (select * from paper,question 
            where question.question_id = paper.question_id 
            and question.correct_Answer = paper.student_Answer)
      begin 
            insert into paper (Score) values (1);
            end

【问题讨论】:

  • Trigger does not work的可能重复
  • 请不要删除您的问题并在另一个问题中提出相同的问题。改进你的老问题。
  • 当我插入纸质表格时显示此错误:作为表达式一部分的 SELECT 只允许单个结果

标签: sql sqlite triggers


【解决方案1】:
CREATE TRIGGER IF NOT EXISTS set_score
AFTER INSERT ON paper
FOR EACH ROW
WHEN NEW.score IS NULL
BEGIN
    UPDATE paper
    SET Score = EXISTS (SELECT *
                        FROM question
                        WHERE question_id = NEW.question_id
                          AND correct_Answer = NEW.student_Answer)
    WHERE rowid = NEW.rowid;
END;

【讨论】:

    猜你喜欢
    • 2016-01-02
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 2017-04-22
    • 2011-03-16
    • 2019-01-17
    • 2012-09-04
    相关资源
    最近更新 更多