MySql时间戳的问题

wsguang 2006-09-28 09:08:34
问题:在Mysql数据库中使用了Timestamp,对数据库进行更新的时候,时间戳的字段值自动更新成当前的系统时间.
需求:在对数据库进行update操作时,时间戳字段不自动更新为当前系统时间.

谢谢各位
...全文
1176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsguang 2006-09-29
  • 打赏
  • 举报
回复
我想了个办法,设一个无关紧要的字段,设置成第一个时间戳的字段,然后其他的默认为空就可以了,如果对该条数据做操作,则除了那个无关紧要的字段以外的时间戳字段不会自动更新
ckc 2006-09-29
  • 打赏
  • 举报
回复
呵呵,又是版本问题
hy2003fly()的方法在低版本上不对,default now()语法错误
如果想以后不被修改,可以在update的时候指定这一列继续使用当前值
以下是我模拟hy2003fly()的方法的结果
mysql> create table cc(id int not null auto_increment primary key,
-> name varchar(20) not null,date timestamp);
Query OK, 0 rows affected (0.11 sec)

mysql> desc cc
-> ;
+-------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+----------------+
| id | int(11) | | PRI | NULL | auto_increment |
| name | varchar(20) | | | | |
| date | timestamp(14) | YES | | NULL | |
+-------+---------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql> insert into cc(id,name) values(1,'tom');
Query OK, 1 row affected (0.04 sec)

mysql> select * from cc;
+----+------+----------------+
| id | name | date |
+----+------+----------------+
| 1 | tom | 20060929094134 |
+----+------+----------------+
1 row in set (0.00 sec)

mysql> update cc set name='jim',date=date;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from cc;
+----+------+----------------+
| id | name | date |
+----+------+----------------+
| 1 | jim | 20060929094134 |
+----+------+----------------+
1 row in set (0.01 sec)
allright_flash 2006-09-28
  • 打赏
  • 举报
回复
去掉default value试试看!
hy2003fly 2006-09-28
  • 打赏
  • 举报
回复
下面的过程,不知道是不是你想要的?
mysql> create table cc(id int not null auto_increment primary key,
-> name varchar(20) not null,date timestamp default now());
Query OK, 0 rows affected (0.08 sec)

mysql> desc cc;
+-------+-------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | NO | | | |
| date | timestamp | YES | | CURRENT_TIMESTAMP | |
+-------+-------------+------+-----+-------------------+----------------+
3 rows in set (0.03 sec)

mysql> insert into cc(id,name) values(1,'tom');
Query OK, 1 row affected (0.00 sec)

mysql> select * from cc;
+----+------+---------------------+
| id | name | date |
+----+------+---------------------+
| 1 | tom | 2006-09-28 14:00:25 |
+----+------+---------------------+
1 row in set (0.00 sec)

mysql> update cc set name='jim';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from cc;
+----+------+---------------------+
| id | name | date |
+----+------+---------------------+
| 1 | jim | 2006-09-28 14:00:25 |
+----+------+---------------------+
1 row in set (0.00 sec)

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧