MySQLテーブルにフィールドがあり、タイムスタンプとしてデフォルト値に設定します。最初に更新すると現在のタイムスタンプに更新され、2回目に更新すると同じ3番目に更新すると現在のタイムスタンプ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 に挿入し、0 を MOD_EID に挿入します。2 回目の更新時に、必要な値で MOD_EID を更新しています。どちらの場合も、EXIT_TIME で current_timestamp を取得できました。しかし、MOD_EID フィールドを 1 分または 1 日後に同じ値で再度更新すると、EXIT_TIME フィールドは current_timestamp に更新されませんか? どうしたの
アップデートのコードは
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);
}
}