navicat 에서 저장 프로 세 스,트리거 를 만 들 고 커서 를 사용 하 는 간단 한 인 스 턴 스(그림)
먼저 두 장의 표(users 표 와 number 표)를 만 들 고 구체 적 인 디자인 은 다음 과 같다.
2.저장 프로시저
저장 프로 세 스 를 작성 하고 users 표 에 데 이 터 를 삽입 합 니 다.생 성 과정 은 다음 과 같 습 니 다.
코드 는 다음 과 같다.
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
저장 과정 을 실행 하면 users 표 의 데 이 터 를 다음 과 같이 볼 수 있 습 니 다.
전체 저장 과정의 작성 이 완료 되 었 습 니 다.물론 이것 은 아주 간단 한 예 일 뿐 입 니 다.입문 에 참고 하 시기 바 랍 니 다.
3.트리거
트리거 를 쓰기 전에 users 의 데 이 터 를 비 웁 니 다.
truncate table users;
지금 우 리 는 두 개의 시계 가 있 습 니 다.제 가 해 야 할 일 은 바로 users 에 데 이 터 를 삽입 한 후에 number 에서 도 해당 하 는 변화 가 있 습 니 다.예 를 들 어 number 표 에 초기 데이터 가 있 습 니 다.id=1,num=0;
users 에 데 이 터 를 삽입 하면 number 표 의 num 필드 에 1 을 추가 합 니 다.즉,사용자 수 를 기록 하 는 것 입 니 다.
다음은 이 작은 기능 을 실현 하 겠 습 니 다.
users 표를 우 클릭 하여 디자인 표를 선택 하 십시오.
트리거 옵션 선택
begin
update number
set num = (select count(*) from users) ;
end
저장 한 후에 users 표 에 새로운 데 이 터 를 추가 하고 number 의 데 이 터 를 살 펴 보면 신기 하 게 number 표 의 데이터 도 변 했다 는 것 을 알 게 될 것 입 니 다.직접 해 보 세 요!ps:저장 과정 은 프로그래머 가 직접 실행 해 야 합 니 다.트리거 는 말 그대로 자동 으로 실 행 됩 니 다.
4.커서 사용
제 가 지금 하고 싶 은 건 studentID 필드 에 100 을 더 해서 이 예 를 통 해 커서 의 사용 을 간단하게 보 여 줍 니 다.
저장 프로 세 스 를 만 듭 니 다.생 성 방식 은 위의 절 차 를 참고 합 니 다.저장 프로시저 코드 는 다음 과 같 습 니 다.
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 의 데이터 가 원 하 는 대로 변 한 것 을 발견 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
sql 데이터베이스 잠 금 처리 저장 과정텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.