- 浏览: 567028 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (618)
- java (109)
- Java web (43)
- javascript (52)
- js (15)
- 闭包 (2)
- maven (8)
- 杂 (28)
- python (47)
- linux (51)
- git (18)
- (1)
- mysql (31)
- 管理 (1)
- redis (6)
- 操作系统 (12)
- 网络 (13)
- mongo (1)
- nginx (17)
- web (8)
- ffmpeg (1)
- python安装包 (0)
- php (49)
- imagemagic (1)
- eclipse (21)
- django (4)
- 学习 (1)
- 书籍 (1)
- uml (3)
- emacs (19)
- svn (2)
- netty (9)
- joomla (1)
- css (1)
- 推送 (2)
- android (6)
- memcached (2)
- docker、 (0)
- docker (7)
- go (1)
- resin (1)
- groovy (1)
- spring (1)
最新评论
-
chokee:
...
Spring3 MVC 深入研究 -
googleyufei:
很有用, 我现在打算学学Python. 这些资料的很及时.
python的几个实用网站(转的) -
hujingwei1001:
太好了找的就是它
easy explore -
xiangtui:
例子举得不错。。。学习了
java callback -
幻影桃花源:
太好了,謝謝
Spring3 MVC 深入研究
原文地址:http://blog.sina.com.cn/s/blog_672b419f0101k63f.html
今天写一段程序,在mysql中创建了一张表,其中有两个字段,一个是createdTS用来存储本记录创建时间,一个是modifiedTS用来存储本记录最近更新时间。
create table test(a varchar(3),
createdTS timestamp,
modifiedTS timestamp);
表的创建插入修改删除没有任何问题,但是查询出来的结果却有出入,问题就是createdTS实际显示的是最近更新时间,而modifiedTS显示创建时间。
mysql在一个表中存储创建时间和最近更新时间
这个问题在于----
使用show create table test;查看生成的create语句
CREATE TABLE `test` (
`a` char(1) DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=utf8
那么调换createdTS和modifiedTS顺序可否,不是很合理。
最后我使用以下解决方案。
create table test(a varchar(3),
createdTS datetime,
modifiedTS timestamp);
搞定!!!
在插入的时候这样写
insert into test values('1',current_timestamp,null);
---------------------------------------------------------------
最后---
insert语句可以这样写
mysql> insert into test values('3',current_timestamp,null);
Query OK, 1 row affected (0.03 sec)
mysql> insert into test values('4',now(),null);
Query OK, 1 row affected (0.03 sec)
mysql> update test set a='33' where a='3';
Query OK, 1 row affected (0.10 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update test set a='44' where a='4';
Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from test;
+------+---------------------+---------------------+
| a | createdTS | modifiedTS |
+------+---------------------+---------------------+
| 11 | 2014-04-10 00:02:25 | 2014-04-10 00:02:43 |
| 22 | 2014-04-10 00:02:27 | 2014-04-10 00:02:48 |
| 33 | 2014-04-10 00:18:34 | 2014-04-10 00:19:19 |
| 44 | 2014-04-10 00:18:46 | 2014-04-10 00:19:28 |
+------+---------------------+---------------------+
今天写一段程序,在mysql中创建了一张表,其中有两个字段,一个是createdTS用来存储本记录创建时间,一个是modifiedTS用来存储本记录最近更新时间。
create table test(a varchar(3),
createdTS timestamp,
modifiedTS timestamp);
表的创建插入修改删除没有任何问题,但是查询出来的结果却有出入,问题就是createdTS实际显示的是最近更新时间,而modifiedTS显示创建时间。
mysql在一个表中存储创建时间和最近更新时间
这个问题在于----
使用show create table test;查看生成的create语句
CREATE TABLE `test` (
`a` char(1) DEFAULT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=utf8
那么调换createdTS和modifiedTS顺序可否,不是很合理。
最后我使用以下解决方案。
create table test(a varchar(3),
createdTS datetime,
modifiedTS timestamp);
搞定!!!
在插入的时候这样写
insert into test values('1',current_timestamp,null);
---------------------------------------------------------------
最后---
insert语句可以这样写
mysql> insert into test values('3',current_timestamp,null);
Query OK, 1 row affected (0.03 sec)
mysql> insert into test values('4',now(),null);
Query OK, 1 row affected (0.03 sec)
mysql> update test set a='33' where a='3';
Query OK, 1 row affected (0.10 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update test set a='44' where a='4';
Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from test;
+------+---------------------+---------------------+
| a | createdTS | modifiedTS |
+------+---------------------+---------------------+
| 11 | 2014-04-10 00:02:25 | 2014-04-10 00:02:43 |
| 22 | 2014-04-10 00:02:27 | 2014-04-10 00:02:48 |
| 33 | 2014-04-10 00:18:34 | 2014-04-10 00:19:19 |
| 44 | 2014-04-10 00:18:46 | 2014-04-10 00:19:28 |
+------+---------------------+---------------------+
发表评论
-
使用amoeba 数据库端出现 ERROR 1044 (42000):
2015-11-25 11:29 893原文地址:http://blog.csdn.net/ljunc ... -
amoeba实现mysql读写分离
2015-11-25 11:29 566原文地址:http://coolnull.com/1463.h ... -
Mysql繁忙主从库在线修改表结构与添加索引问题
2015-11-19 11:01 1470原文地址:http://www.itpub.net/threa ... -
mysql 主从复制双主架构在线修改表结构、在线DDL
2015-11-19 10:59 1082原文地址:http://blog.csdn.net/clh60 ... -
高性能Mysql主从架构的复制原理及配置详解
2015-11-19 10:09 846原文地址:http://blog.csdn ... -
MySQ索引操作命令总结(创建、重建、查询和删除索引命令详解)
2015-11-18 18:13 619原文地址:http://www.shangxueba.com/ ... -
数据库性能优化一:数据库自身优化
2015-11-12 15:57 485原文地址:http://www.cnblo ... -
Mysql 如何设置字段自动获取当前时间
2015-10-26 15:07 1041原文地址:http://www.cnblogs.com/lhj ... -
MySQL的create table as 与 like区别
2015-04-30 10:05 687原文地址:http://blog.csdn.net/longy ... -
Mysql 慢查询和慢查询日志分析
2015-04-21 12:01 669原文地址:http://www.cnblogs.com/wrm ... -
linux下mysql的root密码忘记解决方
2015-04-20 15:58 578原文地址:http://www.cnblogs.com/all ... -
手把手搭建sphinx环境
2015-04-20 10:53 783原文地址:http://blog.csdn.net/uestc ... -
【PHP征文】php 使用 sphinx 实现实时 innodb 全文索引
2015-04-20 10:51 1533原文地址:http://cloudbbs.org/forum. ... -
sphinx mysql innodb 联表数据源配置
2015-04-20 10:48 891原文地址:http://blog.phpdr.net/sphi ... -
mysql垂直分区和水平分区
2015-04-20 10:38 579原文地址:http://itsoul.iteye.com/bl ... -
MySQL隔离级别
2015-04-13 11:53 519原文地址:http://blog.csdn.net/taylo ... -
jdbc---隔离级别
2015-03-26 17:27 541原文地址“http://z466459262.iteye.co ... -
数据库事务隔离级别
2015-03-26 17:10 490原文地址:http://blog.csdn.net/fg200 ... -
JDBC事务隔离级别
2015-03-26 14:04 549原文地址:http://blog.csdn ... -
mysql开发者sql权威指南
2015-03-19 15:43 400原文地址:http://www.r20.nl/SQLforMy ...
相关推荐
MySQL分区表是一种优化大型数据表查询效率的技术,它将一个大表分成多个逻辑上相连但物理上独立的部分,每个部分称为一个分区。分区可以按照不同的策略进行,如范围、哈希、列表或复合分区。这样做有助于提高数据...
在mysql 5.7.2+版本之前,我们只能为表中的事件创建一个触发器,例如,只能为BEFORE UPDATE或AFTER UPDATE事件创建一个触发器。 mysql 5.7.2+版本解决了这样限制,并允许我们为表中的相同事件和动作时间创建多个...
创建日期维度表的存储过程是数据仓库建模过程中的一个步骤,它通过执行SQL脚本来自动填充这个表。 在提供的文件中,我们可以看到有三个不同的SQL文件,分别对应于不同的数据库管理系统: 1. `sp_dim_date.sql`: 这...
MySQL日历数据表是数据库设计中的一个重要组成部分,尤其在处理日期和时间相关的应用时,如日历应用、事件管理、中国传统节日提醒等。这个压缩包文件"mysql日历数据表1900-2100(公历表和农历表).rar"包含了从1900年...
本篇文章将详细讲解如何在MySQL环境中创建一个名为“学生”的数据表,包括所需字段的定义、数据类型的选择以及一些最佳实践。 首先,我们需要了解表的基本结构。在关系型数据库中,表是由行和列组成的,每一行代表...
在MySQL数据库管理中,合理地设定表结构是确保数据准确性和效率的关键步骤之一。当涉及到时间戳字段,如用户注册时间或最后登录时间时,将其默认值设为系统当前时间可以极大地方便数据管理和减少不必要的资源消耗。...
在存储过程中,根据一张主表去创建一张副表。 在根据需要限制的时间,查询主表里面的数据。将主表的数据插入到新建的副表里面同时将主表的数据删除,使用事物进行控制操作的过程
这个示例对于初学者来说是一个很好的起点,它展示了如何在MySQL中设计和操作数据库表。理解这些基本操作是数据库管理的基础,对于开发人员来说至关重要。通过这种方式,我们可以确保数据的存储和检索符合业务需求,...
在MySQL中,可以使用`CREATE DATABASE`语句来创建一个新的数据库。例如,如果我们要创建一个名为`my_database`的数据库,命令如下: ```sql CREATE DATABASE my_database; ``` 执行此命令后,`my_database`就会在...
MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...
MySQL数据库在IT行业中被广泛用于存储和管理各种类型的数据,其中就包括日期和时间信息。在本案例中,我们关注的是一个特殊的数据库设计,涉及到1900年至2100年的日历数据,涵盖了公历和农历两个方面。这个数据库...
2. **版本控制**:在需要维护数据变更历史的应用场景中,记录每条记录的创建时间和最后更新时间可以帮助追踪数据的变化。 3. **并发控制**:在多用户环境下,使用`TIMESTAMP`字段可以辅助实现乐观锁机制,确保数据的...
MySQL数据库在大数据处理中扮演着重要...总之,通过结合存储过程和事件,我们可以实现在MySQL中自动管理时间分区,以适应不断增长的数据量和查询需求。这不仅简化了数据库维护,也有助于优化性能,提高数据管理效率。
在描述中提到的一个实例是创建一个临时表来存储特定检修人员的工位检修结果。这个例子中,首先判断是否已存在临时表,如果存在则删除,然后创建新的临时表并填充数据: ```sql -- 删除已存在的临时表(如果存在) ...
在MySQL中创建数据库和表是数据库管理的基础操作,对于任何使用MySQL存储数据的应用程序都是至关重要的。MySQL是一种流行的关系型数据库管理系统(RDBMS),它提供了丰富的功能来创建、管理和维护数据库。以下将详细...
在MySQL中,我们首先需要创建一个数据库来存放我们的数据。可以使用`CREATE DATABASE`语句来实现,如: ```sql CREATE DATABASE 数据库名; ``` 例如,创建一个名为`mydatabase`的数据库: ```sql CREATE DATABASE ...
本文将深入探讨如何利用MySQL存储过程动态创建多列,这是一个高级功能,尤其适用于需要根据运行时变量或条件动态修改表结构的情况。 ### MySQL存储过程动态创建多列 #### 基本概念 在MySQL中,动态地添加列到一个...
MySQL数据库中的`proc`表是存储过程和函数的元数据表,它包含了关于用户自定义的存储过程和函数的信息。这个表在MySQL的系统数据库`mysql`中,用于记录所有数据库实例上的这些对象的详细信息。`proc.frm`, `proc.MYD...
当你将一个字段的默认值设置为`CURRENT_TIMESTAMP`,这意味着每当在这个字段没有指定任何值时(例如在插入新记录或更新记录但未改变该字段时),系统会自动将该字段的值设置为当前的日期和时间。 这种配置在数据库...