Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mysql中用于自动更新的触发器出错_Java_Mysql_Date - Fatal编程技术网

Java mysql中用于自动更新的触发器出错

Java mysql中用于自动更新的触发器出错,java,mysql,date,Java,Mysql,Date,奥巴马的回答是正确的。触发器出错 在我的程序中,我使用了以下错误 2014-02-25T11:51:52.737+0530 ERROR line 1:2: unexpected token: CREATE 2014-02-25T11:51:52.737+0530 ERROR line 1:2: unexpected token: CREATE line 1:2: unexpected token: CREATE 这是密码 @SuppressWarnings("unchecked") p

奥巴马的回答是正确的。触发器出错

在我的程序中,我使用了以下错误

2014-02-25T11:51:52.737+0530  ERROR  line 1:2: unexpected token: CREATE
2014-02-25T11:51:52.737+0530  ERROR  line 1:2: unexpected token: CREATE
line 1:2: unexpected token: CREATE
这是密码

@SuppressWarnings("unchecked")
public static void expMember(){


Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.setFlushMode(FlushMode.MANUAL);
session.beginTransaction();

java.util.Date utilDate=new java.util.Date();
java.sql.Date sqldate=new java.sql.Date(utilDate.getTime());

List<Member> members = (List<Member>) session.createQuery(                  
        "from Member where exp_status = 'false' ").list();;

for(Member i : members){

Date exp=i.getRenewDate();

try {

    members = (List<Member>) session.createQuery(   
" CREATE  TRIGGER autoupdation_"+ sqldate +" BEFORE UPDATE  ON tbl-member FOR EACH
      ROW BEGIN IF"+ exp .compareTo(sqldate)+" THEN  SET NEW.status = 1;   
      ELSE SET NEW.status = 0; END IF;END;").list();

}

catch(Exception exception){

}
}
}
@SuppressWarnings(“未选中”)
公共静态void expMember(){
会话会话=HibernateUtil.getSessionFactory().getCurrentSession();
session.setFlushMode(FlushMode.MANUAL);
session.beginTransaction();
java.util.Date utilDate=new java.util.Date();
java.sql.Date sqldate=new java.sql.Date(utilDate.getTime());
列表成员=(列表)会话。createQuery(
“来自成员,其中exp_status='false').list();;
代表(成员一:成员){
日期exp=i.getRenewandate();
试一试{
成员=(列表)会话。createQuery(
在更新tbl成员之前为每个
如果“+exp.compareTo(sqldate)+”,则行开始,然后设置NEW.status=1;
否则设置NEW.status=0;如果结束;结束;“”.list();
}
捕获(异常){
}
}
}

您正在尝试运行本机sql查询,因此对于这些查询,请使用
createSQLQuery
而不是
createQuery

还有,为什么要动态创建触发器。在循环中创建触发器的逻辑是错误的。您只需要创建一个触发器,这个触发器可以在数据库创建时完成

The MySQL Table Editor in MYSQL workbench  provides a work space that has tabs used to perform these actions:

Columns: Add or modify columns

Indexes: Add or modify indexes

Foreign Keys: Add or modify foreign keys

Triggers: Add or modify triggers

Partitioning: Manage partitioning

Options: Add or modify various general, table, and row options
请查收


您正在尝试运行本机sql查询,因此对于这些查询,请使用
createSQLQuery
而不是
createQuery

还有,为什么要动态创建触发器。在循环中创建触发器的逻辑是错误的。您只需要创建一个触发器,这个触发器可以在数据库创建时完成

The MySQL Table Editor in MYSQL workbench  provides a work space that has tabs used to perform these actions:

Columns: Add or modify columns

Indexes: Add or modify indexes

Foreign Keys: Add or modify foreign keys

Triggers: Add or modify triggers

Partitioning: Manage partitioning

Options: Add or modify various general, table, and row options
请查收


每行每行开始为什么要为每行指定两个?这是打字错误吗?否则,这可能是错误的根本原因。在创建触发器时结合java对象比较是没有意义的。对于数据库,触发器创建是一次,但不是每次调用。对于每行,每行开始,为什么要为每行指定两个触发器?这是一个输入错误吗?否则,这可能是错误的根本原因。在创建触发器时结合java对象比较是没有意义的。为数据库创建触发器一次,但不是每次调用。