Update from 子查询更新 suny

在更新表数据的时候,我们时常需要把另外一个表的关联值的数据更新到当前表,此时就需要用到子查询了:

MS SQL Server的写法:

update child set parent_name =p.name from child c,parent p where c.parent_id=p.id
或者
update child set parent_name =(select name from parent p where p.id=parent_id)

...

mysql导出和导入txt数据 rainy

1:将数据导出生成txt

mysql>select name from user into outfile 't.txt';

t.txt即是你要查询的数据文件,在mysql的安装目录下,你可以使用find . -name 't.txt',全局查询一下即可

...

CentOS环境下把 Nginx 从0.8.54平滑升级至1.0.6 suny

      使用Nginx很久了,一直没有更新和升级,最近爆出低版本的nginx有安全漏洞,虽然当前版本没有受影响,但是本着追求新版和稳定的精神,今天把nginx顺利升级到了最新的1.0.6稳定版。

升级步骤:

1、下载安装包:# wget http://nginx.org/download/nginx-1.0.6.tar.gz

...

在nginx中禁止直接用ip访问及server_name特性 rainy

看了很多nginx的配置,好像都忽略了ip直接访问web的问题,不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面。

官方文档中提供的方法:

If you do not want to process requests with undefined “Host” header lines, you may define a default server that just drops the requests:

...

MYSQL中TIMESTAMP类型的使用 suny

MYSQL中TIMESTAMP类型的默认值

MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样。
1、自动UPDATE 和INSERT 到当前的时间:
表:
---------------------------------
Table Create Table
------ -------------------------------------------------------------------------------------
CREATE TABLE `t1` (
`p_c` int(11) NOT NULL,
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
数据:
1 2007-10-08 11:53:35
2 2007-10-08 11:54:00
insert into t1(p_c) select 3;
update t1 set p_c = 2 where p_c = 5;
数据:
1 2007-10-08 11:53:35
5 2007-10-08 12:00:37
3 2007-10-08 12:00:37


2、自动INSERT 到当前时间,不过不自动UPDATE。
表:
---------------------------------
Table Create Table
------ ---------------------------------------------------------
CREATE TABLE `t2` (
`p_c` int(11) NOT NULL,
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
数据:
insert into t2(p_c) select 4;
update t2 set p_c = 3 where p_c = 5;
1 2007-10-08 11:53:35
2 2007-10-08 12:00:37
5 2007-10-08 12:00:37
4 2007-10-08 12:05:19

3、一个表中不能有两个字段默认值是当前时间,否则就会出错。不过其他的可以。
表:
---------------------------------
Table Create Table
------ ---------------------------------------------------------------
CREATE TABLE `t1` (
`p_c` int(11) NOT NULL,
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`p_timew2` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
数据:
1 2007-10-08 11:53:35 0000-00-00 00:00:00
2 2007-10-08 12:00:37 0000-00-00 00:00:00
3 2007-10-08 12:00:37 0000-00-00 00:00:00
4 2007-10-08 12:05:19 0000-00-00 00:00:00

...

sql server 锁表 select for update suny

SELECT 语句中“加锁选项”的功能说明

SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果。 本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明。

功能说明: 

...

myBatis 使用Select top 动态参数出现“´@P0´ 附近有语法错误”的解决 cloudy

今天在使用myBatis使用 select top #{num} * from tableName... 传递动态参数的时候会无法执行SQL语句,报错:'@P0'附近有语法错误

最后寻得解决方法应该为:select top ${num} * from tableName...

iBatis2对应语法是:#num# 和 $num$。

...

httpClient4.x中,MultipartEntity中附加中文信息时的乱码解决 cloud

今天在开发腾讯微博应用的时候,发现部署在Linux上面的jsp无法同时发送图片和汉字,会出现鉴权失败的错误,原因是参数中的中文汉字乱码了!但是在本地winxp环境使用eclipse调试却可以正常发送!

经过调试,发现是httpClient中的MultipartEntity参数编码出现了异常,修改如下:
MultipartEntity reqEntity = new MultipartEntity();
..........
reqEntity.addPart(param[0], new StringBody(value));
改为
MultipartEntity reqEntity = new MultipartEntity();
..........
reqEntity.addPart(param[0], new StringBody(value,CharsetUtil.getCharset(chartSet)));

chartSet是一个字符串变量,指编码格式,我的值是"UTF-8"。

...

[转]图片延迟加载技术(ImageLazyLoad) cloud

 ImageLazyLoad技术,就是在下拉滚动条的时候加载图片,这种比较适合一个网页上有很多图片的情况,例如某个页面都是图片,那么如果用户访问的时候,会在加载完整个页面等待很长时间,而用第一眼看到的只是第一屏的内容,所以第二屏、第三屏等的内容加载时间其实是在浪费时间!如果用户只看了第一屏,而不翻屏就关掉了浏览器,那么第二屏第三屏下载的资源也是一中流量的浪费! 并且加载用户体验也不好!那么这就有了这个小技巧,使用javascript来实现图片缓冲,只加载用户要看的屏幕的资源,这个小技巧的好处是提高访问速度,提高用户体验,对seo没有什么帮助!,不废话,说做法: 

一、使用JQuery插件 ,插件名: jquery.lazyload(7kb大小),压缩后(3kb大小):

1.导入JS插件,请自行到jquery官方下载js文件
<script src="http://jianzi0307.blog.163.com/blog/jquery.js" type="text/javascript"></script>
...

[转]CentOS/Linux VPS下启用未使用的硬盘空间 cloud

这个是XenSystem官方的教程.但是使用的时候会出现一个问题:
vgdisplay查看物理卷组情况,可以看到我们有多少G的容量可以扩展,教程是22G,整数,但是实际应用很多都不是整数,你全部扩容的话填写XX.XXG的时候就会返回一个错误.今天给别人搞就是这样,你可以这样扩容:先扩容整数,然后会剩下XXM的可扩容空间,再次扩容,直接填写M单位。就成功了。

下面是教程:
fdisk -l
查看硬盘分区情况

df -hal
查看已划分区空间使用情况,硬盘容量为32.2G,已划分的空间为5.7G(不包含SWAP,输入free -m可以查看内存和swap使用情况)
运行效果如下图:

...

Total:13312345678910›|14 Pages