navicat 에서 저장 프로 세 스,트리거 를 만 들 고 커서 를 사용 하 는 간단 한 인 스 턴 스(그림)

1.건축 표
먼저 두 장의 표(users 표 와 number 표)를 만 들 고 구체 적 인 디자인 은 다음 과 같다.
1.jpg
2.jpg
2.저장 프로시저
저장 프로 세 스 를 작성 하고 users 표 에 데 이 터 를 삽입 합 니 다.생 성 과정 은 다음 과 같 습 니 다.
3.jpg
4.jpg
5.jpg
코드 는 다음 과 같다.

BEGIN
 #Routine body goes here...
 declare n bigint;
 set n = 201121029684;
 while n <= 201121029694
 do
 insert into users(student_ID) values(n);
 set n = n + 1;
 end while;
END
6.jpg
저장 과정 을 실행 하면 users 표 의 데 이 터 를 다음 과 같이 볼 수 있 습 니 다.
7.jpg
전체 저장 과정의 작성 이 완료 되 었 습 니 다.물론 이것 은 아주 간단 한 예 일 뿐 입 니 다.입문 에 참고 하 시기 바 랍 니 다.
3.트리거
트리거 를 쓰기 전에 users 의 데 이 터 를 비 웁 니 다.

truncate table users; 
지금 우 리 는 두 개의 시계 가 있 습 니 다.제 가 해 야 할 일 은 바로 users 에 데 이 터 를 삽입 한 후에 number 에서 도 해당 하 는 변화 가 있 습 니 다.
예 를 들 어 number 표 에 초기 데이터 가 있 습 니 다.id=1,num=0;
users 에 데 이 터 를 삽입 하면 number 표 의 num 필드 에 1 을 추가 합 니 다.즉,사용자 수 를 기록 하 는 것 입 니 다.
다음은 이 작은 기능 을 실현 하 겠 습 니 다.
users 표를 우 클릭 하여 디자인 표를 선택 하 십시오.
8.jpg
트리거 옵션 선택
9.jpg
10.jpg
11.jpg

begin
 update number
 set num = (select count(*) from users) ;
end
저장 한 후에 users 표 에 새로운 데 이 터 를 추가 하고 number 의 데 이 터 를 살 펴 보면 신기 하 게 number 표 의 데이터 도 변 했다 는 것 을 알 게 될 것 입 니 다.직접 해 보 세 요!
ps:저장 과정 은 프로그래머 가 직접 실행 해 야 합 니 다.트리거 는 말 그대로 자동 으로 실 행 됩 니 다.
4.커서 사용
제 가 지금 하고 싶 은 건 studentID 필드 에 100 을 더 해서 이 예 를 통 해 커서 의 사용 을 간단하게 보 여 줍 니 다.
저장 프로 세 스 를 만 듭 니 다.생 성 방식 은 위의 절 차 를 참고 합 니 다.저장 프로시저 코드 는 다음 과 같 습 니 다.
12.jpg

BEGIN
 #Routine body goes here...

 declare tmp bigint default 0;
 declare cur CURSOR FOR SELECT student_ID FROM users; --     
 /*
 02000         : 
 SELECT INTO     INSERT             。 
      UPDATE   DELETE           。 
   FETCH                      。


 */
 declare CONTINUE HANDLER FOR SQLSTATE '02000' set tmp = 0; 


 OPEN cur; --     
 FETCH cur INTO tmp; --        


 WHILE(tmp != 0)
 DO 
 select tmp; --  tmp    ,   tmp      ,        ,     ,        


 UPDATE users
 SET student_ID = tmp + 100
 WHERE student_ID = tmp;
 FETCH cur INTO tmp;
 END WHILE;

 CLOSE cur; --     
END
위의 저장 과정 을 실행 하면 users 의 데이터 가 원 하 는 대로 변 한 것 을 발견 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기