Java 使用列中的相同值更新mysql时间戳

Java 使用列中的相同值更新mysql时间戳,java,mysql,jsp,Java,Mysql,Jsp,我在MySQL表中有一个字段,我将它设置为默认值作为时间戳,当我第一次更新它时,它会更新到当前时间戳,当我第二次更新它时,它也会更新到当前时间戳bt,当我第三次更新时,它会更新到列时间戳字段中的相同值,而不是更新到当前时间戳 我的表格结构是: +-----------+-----------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key |

我在MySQL表中有一个字段,我将它设置为默认值作为时间戳,当我第一次更新它时,它会更新到当前时间戳,当我第二次更新它时,它也会更新到当前时间戳bt,当我第三次更新时,它会更新到列时间戳字段中的相同值,而不是更新到当前时间戳

我的表格结构是:

+-----------+-----------+------+-----+-------------------+-----------------------------+
| Field     | Type      | Null | Key | Default           | Extra                       |
+-----------+-----------+------+-----+-------------------+-----------------------------+
| EID       | int(11)   | NO   | PRI | 0                 |                             |
| MOD_EID   | int(11)   | YES  |     | NULL              |                             |
| EXIT_TIME | timestamp | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-----------+-----------+------+-----+-------------------+-----------------------------+
当我第一次更新时,我在EID中插入所需值,在MOD_EID中插入0。当我第二次更新时,我正在用所需的值更新MOD_EID。在这两种情况下,我都能够在退出时间中获得当前的时间戳。 但是,当我在一分钟或一天之后用相同的值再次更新MOD_EID字段时,是否退出_TIME字段而不更新到当前的_时间戳? 怎么了

更新的代码是

String vexit=request.getParameter("string");

StringTokenizer tok=new StringTokenizer(vexit,"");

String sql,query,query2;
int count2=0;


    while(tok.hasMoreTokens())
    {
            String ide=tok.nextToken();
sql="SELECT count(EID) FROM tm_exit where EID='"+ide+"' ";
            ResultSet rs=st.executeQuery(sql);
            while(rs.next())
            {
            count2=rs.getInt(1);
}
        if(count2 >0)
            {
query="UPDATE tm_exit set MOD_EID='"+ide+"' WHERE EID='"+ide+"'";
int flag=st.executeUpdate(query);
}
        else
            {
query2="INSERT INTO tm_exit (EID,MOD_EID)values('"+ide+"',0)";
int flag2=st.executeUpdate(query2);
}
    }

只有当其他列的值更改时,时间戳列才会自动更新。如果您将MOD_EID设置为与已有值相同的值,则不会更新时间戳。我不知道为什么它曾经对你有用,下面是

如果列是自动更新的,它将自动更新为 行中任何其他列的值为时的当前时间戳 已从其当前值更改。如果所有选项都被选中,则该列保持不变 其他列设置为其当前值。为了防止柱 从其他列更改时更新,显式将其设置为 当前值。即使其他列不更新该列,也要更新该列 更改,显式将其设置为应有的值(例如, 设置为)


你是说第三次(3!)更新无法更新退出时间,而第一次和第二次都有效。。。如果是这样的话,那么你可能在更新查询中做了一些奇怪的事情,我们需要更多的信息来帮助你。但是在这之前它是更新的,现在我面对这个查询。