我正在开发一个swing应用程序,在测试过程中,我遇到了一些更新数据的问题。MySQL自动更新日期字段
我有一个称为 '剂量' 表:
create table Dose (id_dose int auto_increment primary key ,
id_cmd varchar(50),
t_inj TimeStamp,
a_inj int,
id_e_d int,
id_dose_inc varchar(50),
poid int ,
Constraint fkk_et_doses foreign key (id_e_d) references Etat_dose (id_e_d),
Constraint fkk_et_cmds foreign key (id_cmd) references Commande (id_cmd)ON DELETE CASCADE);
的id_e_d字段引用在etat_dose表id_e_d:
create table Etat_dose (id_e_d int primary key,
libele varchar(50));
,当我将数据插入到它,一切正常,因为我使用查询:
Methodes.UpdateData("insert into Dose(id_cmd,t_inj,a_inj,id_e_d,id_dose_inc,poid) values (?,?,?,?,?,?)", dose, 6);
但是当我更新id_e_d时,Dose表中的T_inj自动更改为系统日期。例如:
当我插入前:
insert into doses values(1,'CMFDG121031-1',' 2012-10-02 10:30:55',400,1,'CMFDG121031-1-1',30)
当我编辑我得到:
mysql> select * from dose where id_dose=1;
+---------+---------------+---------------------+-------+--------+-----------------+------+
| id_dose | id_cmd | t_inj | a_inj | id_e_d | id_dose_inc | poid
+---------+---------------+---------------------+-------+--------+-----------------+------+
| 1 | CMFDG121031-1 | 2012-10-02 10:30:55 | 400 | 1 | CMFDG121031-1-1 | 30 |
+---------+---------------+---------------------+-------+--------+-------------------------
在更新
我执行:
update dose set id_e_d=2 where id_dose=1
我得到:
mysql> select * from dose where id_dose=1;
+---------+---------------+---------------------+-------+--------+-----------------+------+
| id_dose | id_cmd | t_inj | a_inj | id_e_d | id_dose_inc | poid
+---------+---------------+---------------------+-------+--------+-----------------+------+
| 1 | CMFDG121031-1 | 2012-10-08 16:15:11 | 400 | 2 | CMFDG121031-1-1 | 30 |
+---------+---------------+---------------------+-------+--------+-------------------------
正如你所看到的的值T_inj已被自动更改。我能做些什么来追踪这个错误。
那就是(第一)'timestamp'表的列的默认行为。 –