Chinaunix首页 | 论坛 | 博客
  • 博客访问: 197797
  • 博文数量: 21
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-05 21:34
文章分类

全部博文(21)

文章存档

2008年(1)

2006年(20)

我的朋友

分类: Mysql/postgreSQL

2006-03-08 11:28:39

自从离开上一家公司之后,对开源的项目(openSource)的开发越来越感兴趣,之前是做BI,现在是BI和开源相结合,在外国的企业里面是非常看重开源的东西,但是在中国不行,中国人最怕就是出事,因为出事就是找责任,谁也不愿意背着责任上身.这也就是外国人的观念不同于中国.这篇主要是mysql的讲座,以后有时间继续增其它开源的东东:jasperReport+ireport,struts,spring,hibernate,ibatis等.
 
1.mysql的安装,进入  的网站,下载5.0版本的,5.0之前不要下了,因为不支持procedure和function.如果是windows操作系统有两种方法,一种是要安装,一种是不用安装,如果unix或linux系统,那就要看清楚哦.
2.windows的安装非常简单,unix的安装看INSTALL文件,那里有详细步骤.
3.装好之后,最好有一个administrator和Query brower,同样在mysql网站下载.不然只有doc窗口哦
4.下面着得讲function和procedure,也是直接能见到效果.
 
DELIMITER $$
DROP FUNCTION IF EXISTS `niegc`.`NextSequenceId` $$
CREATE FUNCTION "NextSequenceId"(sequenceName varchar(50)) RETURNS int(11)
BEGIN
  declare result,nextValue integer ;
 select count(1) into nextValue from sys_identity_sequence a where a.sequence_name=sequenceName;
   if nextValue=0 then
     insert into sys_identity_sequence values(sequenceName,1);
    set result=1;
    else
       select next_value into nextValue from sys_identity_sequence a where a.sequence_name=sequenceName;
    update sys_identity_sequence a set a.next_value=a.next_value+1  where a.sequence_name=sequenceName;
   set result=nextValue;
   end if;
  return(Result);
END $$
DELIMITER ;
 
---------------解释
sequenceName varchar(50)) 是输入参数哦
RETURNS int(11) 是返回的类型,这一点和ORACLE有点不同
调用:
select NextSequenceId('aaaaa');
 
 
--今天到这里,回去继续

 
 
 
 
 
阅读(1535) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~