本帖最后由 seven_11 于 2010-05-05 10:10:21 编辑

解决方案 »

  1.   

    DELIMITER //
    DROP TRIGGER IF EXISTS TRG_UPDATE_ACCOUNT //
    CREATE TRIGGER TRG_UPDATE_ACCOUNT AFTER INSERT ON _record FOR EACH ROW
    BEGIN
      UPDATE _account SET balance=balance+NEW.*NEW.money WHERE userid=NEW.userid AND account=NEW.account;
    END;
    //
    DELIMITER ;
      

  2.   

    DELIMITER $$
    CREATE TRIGGER TRG_UPDATE_ACCOUNT AFTER INSERT ON _record FOR EACH ROW
    BEGIN
      UPDATE _account SET balance=balance+NEW.*NEW.money WHERE userid=NEW.userid AND account=NEW.account;
    END;
    $$
    DELIMITER ;
      

  3.   

    一楼正解。DELIMITER //
    DELIMITER $$
    无关紧要,还可以很多 DELIMITER ## , DELIMITER || 
      

  4.   

    我在mysql数据库中手动加一条数据的时候他会触发,但是我调用add()方法时,数据成功插入了,但是触发器不能被触发
    public void add(Record r) {
    Connection conn = DB.createConn();
    String sql = "insert into _record values (null, ?, ?, ?, ?, ?, ?, ?, now())";
    PreparedStatement ps = DB.prepare(conn, sql);
    try {
    ps.setInt(1, r.getUserid());
    ps.setFloat(2, r.getMoney());
    ps.setString(3, r.getAccount());
    ps.setString(4, r.getType());
    ps.setInt(5, r.getMark());
    ps.setString(6, r.getDate());
    ps.setString(7, r.getRe());
    ps.executeUpdate();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    DB.close(ps);
    DB.close(conn);
    }
      

  5.   

    检查一下_account中的USERID与_record中的USERID是否对应。
      

  6.   

    在数据库中用sql语句插入数据的时候 会执行触发器 但是在页面用表单提交的时候 数据也成功插入了 但是触发器不执行
      

  7.   

    给出你两个表的 create table 语句。还有你的数据库版本。这样别人可以直接测试。