my sql 여러 개의 메 인 키 를 설정 하 는 작업 을 실현 합 니 다.
구현 방식:
시계 구 조 는 움 직 이지 않 아 도 된다.홈 키 Id 인덱스 구현
그림 형식 에서 인덱스 형식 을 유 니 크 의 유일한 선택 표시 줄 로 설정 하고 이름 을 지정 하면 됩 니 다.색인 방식 btree 면 됩 니 다.오케이~
보충:my sql 다 중 표 메 인 키 중복 되 지 않 음
같은 데이터베이스 에 두 장의 표 가 있 는데 그 안의 필드 는 모두 같 습 니 다.단지 저 장 된 데 이 터 를 구분 해 야 하기 때 문 입 니 다.하지만 메 인 키 는 중복 되 지 않 습 니 다.구체 적 인 실현 은 다음 과 같다.
새 데이터베이스 mytest
새 user 표 와 admin 표
CREATE TABLE `user` (
`user_id` INT(11) NOT NULL,
`user_name` VARCHAR(255) NOT NULL,
`password` VARCHAR(255) NOT NULL,
`phone` VARCHAR(255) NOT NULL,
PRIMARY KEY (`user_id`)
)
COMMENT=' '
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
CREATE TABLE `admin` (
`user_id` INT(11) NOT NULL,
`user_name` VARCHAR(255) NOT NULL,
`password` VARCHAR(255) NOT NULL,
`phone` VARCHAR(255) NOT NULL,
PRIMARY KEY (`user_id`)
)
COMMENT=' '
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
새 시퀀스 테이블:
CREATE TABLE `sequence` (
`seq_name` VARCHAR(50) NOT NULL,
`current_val` INT(11) NOT NULL,
`increment_val` INT(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`seq_name`)
)
COMMENT=' '
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
시퀀스 추가:
INSERT INTO sequence VALUES ('seq_test', '0', '1');
현재 값 을 가 져 오 는 데 사용 할 currval 함 수 를 만 듭 니 다:
delimiter #
create function currval(v_seq_name VARCHAR(50))
returns integer(11)
begin
declare value integer;
set value = 0;
select current_val into value from sequence where seq_name = v_seq_name;
return value;
end;
현재 값 조회:
select currval('seq_test');
다음 값 을 가 져 오 는 데 사용 할 nextval 함 수 를 만 듭 니 다:
delimiter #
create function nextval (v_seq_name VARCHAR(50)) returns integer(11)
begin
update sequence set current_val = current_val + increment_val where seq_name = v_seq_name;
return currval(v_seq_name);
end;
다음 값 조회
select nextval('seq_test');
구체 적 인 실현:
<insert id="addUser" parameterType="User">
<selectKey keyProperty="userId" resultType="int" order="BEFORE">
select nextval('seq_test');
</selectKey>
insert into user(user_id,user_name,password,phone) values
(#{userId},#{userName, jdbcType=VARCHAR},#{password, jdbcType=VARCHAR}, #{phone, jdbcType=VARCHAR})
</insert>
<insert id="addAdmin" parameterType="Admin">
<selectKey keyProperty="userId" resultType="int" order="BEFORE">
select nextval('seq_test');
</selectKey>
insert into admin(user_id,user_name,password,phone) values
(#{userId},#{userName, jdbcType=VARCHAR},#{password, jdbcType=VARCHAR}, #{phone, jdbcType=VARCHAR})
</insert>
최종 구현:이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.