最近忙着用利用webservice做一个信息查询、增加、删除、修改的应用程序。起初数据库用的是SQL server 2005,操作起来什么问题也没遇到过,一路都很顺畅。
但是转到MySQL数据库中时,却出现了很多问题。
最开始的问题是中文乱码,⊙﹏⊙b汗,最后会提到解决办法。因为习惯于sql server的那种无论是创建数据库还是创建表、存储过程等的T-SQL语句。
现在到mysql上面,多少有些不习惯。就拿最简单的创建id int型,自增长字段,一个identity(1,1),一个auto_incream;创建存储过程,参数写法也不一样。
具体如下所示(这里Sql server我们忽略大小写,以便与mysql进行对比,嘿嘿。这里演示的存储过程是向表parkinfo中插入数据。
至于为什么会用到存储过程,下面会提到。O(∩_∩)O哈哈~。
sql server 2005版:
create procedure parkinfo_insert
@parkid varchar(10),
@parkname varchar(80),
@parkaddr varchar(80),
@parkcorp varchar(40),
@parktype varchar(10),
@parkproperty varchar(10),
@parkmap LONGBLOB,
@searchkey text,
@plon varchar(15),
@plat varchar(15),
@updatetime DATETIME,
@capacity int(4),
@capacityfree int(4),
@pmanager varchar(10),
@objid varchar(8)
as
insert into parkinfo(parkid,parkname,parkaddr,parkcorp,parktype,parkproperty,parkmap,searchkey,plon,plat,updatetime,capacity,
capacityfree,pmanager,objid)
values(@parkid,@parkname,@parkaddr,@parkcorp,@parktype,@parkproperty,@parkmap,@searchkey,@plon,@plat,@updatetime,@capacity,
@capacityfree,@pmanager,@objid)
mysql版
DELIMITER $
DROP PROCEDURE IF EXISTS `mytest`.`parkinfo_insert`$
CREATE PROCEDURE `parkinfo_insert`(
parkid varchar(10),
parkname varchar(80),
parkaddr varchar(80),
parkcorp varchar(40),
parktype varchar(10),
parkproperty varchar(10),
parkmap LONGBLOB,
searchkey text,
plon varchar(15),
plat varchar(15),
updatetime DATETIME,
capacity int(4),
capacityfree int(4),
pmanager varchar(10