[分享]MYSQL SQL编程实现_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2345 | 回复: 0   主题: [分享]MYSQL SQL编程实现        下一篇 
szd1007
注册用户
等级:下士
经验:177
发帖:17
精华:0
注册:2012-3-1
状态:离线
发送短消息息给szd1007 加好友    发送短消息息给szd1007 发消息
发表于: IP:您无权察看 2014-11-11 11:34:17 | [全部帖] [楼主帖] 楼主

需求:

1.实现上个月的数据全部导入到这个月,并且时间要相应进行调整,即2010-08-10 10:10:11 转化为2010-09-10 10:10:11;

2.如何实现导入效率最高(表有20个字段左右,记录将近30W);

3.如何修改某张表的流水号,让其重新排列,或让某几行的流水号按我们想要的编号进行排列,相当于让其中几行的行顺序对调。

[@more@]


简单思路:
1.
复制表操作:

create table tbl1 as select * from tbl2;


按两个月相差天数计算:

select date_add(@dt,interval 31 day);


按两个月相差月数计算:

select date_add(@dt,interval 1 month);


转换为数值型:

select unix_timestamp(date_add(@dt,interval 1 month));
update tbl1 set dt=date_add(@dt,interval 1 month);


按相差秒数来计算:

+---------------------------------------+
| unix_timestamp('2010-07-16 10:10:10') |
+---------------------------------------+
| 1279246210 |
+---------------------------------------+
1 row in set (0.22 sec)
mysql> select unix_timestamp('2010-08-16 10:10:10');
+---------------------------------------+
| unix_timestamp('2010-08-16 10:10:10') |
+---------------------------------------+
| 1281924610 |
+---------------------------------------+
1 row in set (0.00 sec)
mysql> select (1281924610- 1279246210);
+--------------------------+
| (1281924610- 1279246210) |
+--------------------------+
| 2678400 |
+--------------------------+
1 row in set (0.00 sec)
mysql> select from_unixtime(1279246210+2678400);
+-----------------------------------+
| from_unixtime(1279246210+2678400) |
+-----------------------------------+
| 2010-08-16 10:10:10 |
+-----------------------------------+
1 row in set (0.00 sec)
mysql>


注意:以下导出方式是导入到服务器机器上的目录而非本地客户端的目录中

mysql> select tablename into outfile 'c:c.txt' from dbaudit_index;
ERROR 1086 (HY000): File 'c:c.txt' already exists
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> notee
Outfile disabled.
mysql> select tablename into outfile 'c:/d.txt' from dbaudit_index;
Query OK, 14 rows affected (0.00 sec)
mysql> select tablename into outfile 'c:e.txt' from dbaudit_index;
Query OK, 14 rows affected (0.00 sec)
mysql> exit
Bye


导出一张表。字段以|分隔并用"括起来

mysql> select tablename from dbaudit_index into outfile 'c:f.txt' fields termi
nated by '|' enclosed by '"';
Query OK, 14 rows affected (0.02 sec)


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论