??xml version="1.0" encoding="utf-8" standalone="yes"?>
Path %MYSQL_HOME%\bin
先启动服务:(x)
net start MySQL【或者是MySQL57?/code>
use mysql; GRANT ALL ON *.* TO root@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; flush privileges;
dbexport dbname -c -ss -o /db/sunguorong
2、导出完成后Q在sunguorong目录下生成一个dbname.exp的目录,扑ֈ该目录下的dbname.sql模式脚本文gQ需要利用工P如sqleditorQ来验证一下脚本的语法的正性(导出的脚本可能存在语法上的错误)Q需要加以修改纠正?/p>
3、导入,在导入之前,需要按照存储情况先划分好DBSPACE
dbimport dbname -i /db/sunguorong dbname -c -l buffered -d
dbimport ecardsafe -i D:/mydbback ecardsafe -c -l
4、导入完成后Q进行数据库U别的统计更?/p>
update statistics ;
我们遵@的标准是Q数据库Q表Q字D和面或文本的~码要统一h
很多mysql数据库工P除了phpmyadminQ我偶尔用,功能强速度慢)都不支持创徏时指定数据库~码Q当然可以改my.ini来解册个问?但是需要重新启动mysqlQ?/strong>
不过用下面的语句?x)更有?/strong>
GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
h意not in 逻辑上不完全{同于not existsQ如果你误用了not inQ小心你的程序存在致命的BUGQ?/font>
L(fng)下面的例子:(x)
create table t1 (c1 number,c2 number);
create table t2 (c1 number,c2 number);
insert into t1 values (1,2);
insert into t1 values (1,3);
insert into t2 values (1,2);
insert into t2 values (1,null);
select * from t1 where c2 not in (select c2 from t2);
no rows found
select * from t1 where not exists (select 1 from t2 where t1.c2=t2.c2);
c1 c2
1 3
正如所看到的,not in 出现了不期望的结果集Q存在逻辑错误。如果看一下上qC个select语句的执行计划,也会(x)不同。后者用了hash_aj?br />因此Q请量不要使用not in(它会(x)调用子查?Q而尽量用not exists(它会(x)调用兌子查?。如果子查询中返回的L一条记录含有空|则查询将不返回Q何记录,正如上面例子所C?br />除非子查询字D|非空限制Q这时可以用not in ,q且也可以通过提示让它使用hasg_aj或merge_ajq接?/font>
说点题外话,大家读读HSQLDB的源码,特别是jdbc driverQ?b>org/hsqldb/jdbc?/b>Q那部分Q写得清晰易懂。读了它的部分源码,我自认ؓ(f)对下面一些问题理解深入了Q?
1、JDBC规范和JDBC实现的关p:(x)怎么自己去设计一个规范,一U架构?我是否自己可以ؓ(f)某种数据设计jdbc driverQ如何设计?xphp里面各数据库的函数库各自为政对程序移植性的影响Q就知道jdbc规范有多么重要了?/p>
2、JDBC协议QJDBC是基于socket之上的,数据包格式(org.hsqldb.Result)Qmysql数据包格式公开了)Q那么JMS数据包呢Q其实,q也可以延到分布式协议的设计原理,如RMI、SOAP。其实,q些数据包格式和JSON、YAMLq些message格式没有本质的区别,只不q应用范围不一栗Q何分布式协议Q肯定有一Umessage格式?/p>
3、JDBC over HTTPQ这h们对RMI over IIOP, soap over HTTP, http tunnel原理有更深入的理解?/p>
4、什么是long connectionQjdbc的socket)Q什么是short connectionQhttp)Q具体怎么实现Q?
3?q些在HSQLDB?b>org.hsqldb.HTTPClientConnectionc里有实现?/p>
5、Java客户端和服务器端的通讯实现Qjdbc driver可以认为是一个java客户端类库。那么JMS client呢?q有Q像mysql有各U语a的driverQ原理是什么?/p>
6、sqlq种command、描q型语言I竟在数据库里面是个什么地位:(x)sql是怎么传入jdbc driverQ最l和database交互的?我们是否可以设计出另外一UcommandQŞ成一U行业标准,它在服务器和客户端怎么实现的?/p>
以上我的表达可能有些晦ӆQ我只想表达一点:(x)大家有兴就多读ȝ典的源码Q扩展一下自q设计思\。可能很多h象我一PL忙不完的目Q那么抽几个时够了,不必深入?
有很多技术我们理解L很模p,当你深入到内部,忽然发现原来p么回事。我们总觉得IoC很神U,其实最单的IoC容器Q也怸个HashMap够了?br />
引用?a >http://www.javaeye.com/topic/80532
ALTER PROCEDURE spITM_CheckPaperList(
@intCount INT Output ,
@chvKeywords VARCHAR(100), --关键?br />@chvinterunittypeid varchar(100),
@dtmdatelowerlimit DATETIME ,
@dtmdateupperlimit DATETIME ,
@isspecialbuy int,
@checkresultid int,
@intAudit INT, --审批状?br />@chvEmployeeTypeID VARCHAR(100) , --职员id
@bitViewPersonalLimit BIT, --览个h
@bitViewDepartmentLimit BIT, --览部门
@bitEmployeeIsManager BIT, --览全部
@chvOrgTypeID VARCHAR(100),
@intPageSize INT ,
@intPageNo INT
)
AS
--权限控制条g开?br />DECLARE @chvEmployeeDepartment VARCHAR(36)
DECLARE @bitEmployeeIsAdmin BIT
SELECT @chvEmployeeDepartment = '000'
IF EXISTS(SELECT TypeID FROM CRM_Employee WHERE TypeID = @chvEmployeeTypeID)
AND
EXISTS(SELECT Count(*) FROM CRM_LoginUser WHERE InnerObject = 'Employee' AND InnerObjectTypeID = @chvEmployeeTypeID)
BEGIN
--SELECT @chvEmployeeDepartment = [Department] FROM [CRM_Employee] WHERE [TypeID] = @chvEmployeeTypeID
SELECT @bitEmployeeIsAdmin = IsAdmin FROM CRM_LoginUser WHERE InnerObject = 'Employee' AND InnerObjectTypeID = @chvEmployeeTypeID
--deal empty 2007/1/22
SELECT @chvEmployeeDepartment = case @chvEmployeeDepartment when ' ' then '000' else @chvEmployeeDepartment end
END
ELSE
BEGIN
SELECT * FROM ITM_CheckPaper WHERE TypeID = '0' --q回一个空的记录集
RETURN
END
--权限控制条gl束--
select a.* ,b.Name VendorName, ww.Name CheckPaperName,
w.Name CreatorName
INTO #ITM_CheckPaperListPageTable
from ITM_CheckPaper as a
left JOIN CRM_Employee w ON a.CreatorTypeID = w.TypeID
left join CRM_Employee ww on a.CHECKERTYPEID=ww.Typeid
LEFT JOIN scm_Vendor b ON a.VendorTypeID = b.TypeID
WHERE
a.OrgTypeID = @chvOrgTypeID and
(
a.SERIALNUMBER like '%'+@chvKeywords+'%' or
a.ContractNo like '%'+@chvKeywords+'%' or
b.Name like '%'+@chvKeywords+'%' or
a.CheckSite like '%'+@chvKeywords+'%'
)
--and
--a.AuditFlag = case @intAudit
--- when 0 then a.AuditFlag
-- else @intAudit
-- end
--权限控制条g开?-
AND
(
@bitViewDepartmentLimit = 1
AND
(
ISNULL(w.[Department],'001') LIKE ISNULL(@chvEmployeeDepartment,'not the same') + '%'
OR
ISNULL(w.[Department2],'001') LIKE ISNULL(@chvEmployeeDepartment,'not the same') + '%'
OR
ISNULL(w.[Department3],'001') LIKE ISNULL(@chvEmployeeDepartment,'not the same') + '%'
)
OR
a.[CreatorTypeID] = @chvEmployeeTypeID AND @bitViewPersonalLimit = 1
OR
@bitEmployeeIsAdmin = 1
OR
@bitEmployeeIsManager = 1
OR
a.[EmployeeRange] LIKE '%' +@chvEmployeeTypeID +'%'
)
--权限控制条gl束--
--Order by a.CreateDate desc
---------------判断是否取记录数
if @intCount = 1
Begin
SELECT @intCount=Count(0)
FROM #ITM_CheckPaperListPageTable;
End
--------------------------取记录数完成
DECLARE @chvSql VARCHAR(1000)
--处理大于总页数时的请求页?br />DECLARE @intPageCount INT
SELECT @intPageCount = (@intCount + @intPageSize-1) / @intPageSize;
IF @intPageNo > 1 AND @intPageNo > @intPageCount
SELECT @intPageNo = @intPageCount
ELSE IF @intPageNo > @intPageCount
SELECT @intPageNo = 1
--处理大于总页数时的请求页数结?br />Select @chvSql = 'SELECT TOP ' + Str(@intPageSize) + ' * ' +
' FROM #ITM_CheckPaperListPageTable a ' +
' WHERE a.TypeID not in ' +
' (select top ' + Str((@intPageNo - 1) * @intPageSize) + ' TypeID from #ITM_CheckPaperListPageTable )'
Exec(@chvSql)
Drop Table #ITM_CheckPaperListPageTable
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO