본문 바로가기
MySql

MySQL Mysql Innodb : 비 기본 키 자동 증가

by 베이스 공부 2021. 1. 15.
반응형

기본 키가 아닌 키를 자동으로 늘릴 수 있습니까?

표 "book_comments"

book_id     medium_int
timestamp   medium_int
user_id     medium_int
vote_up     small_int
vote_down   small_int
comment     text
comment_id  medium_int

Primary key -> (book_id, timestamp, user_id)

이 테이블에는 다른 인덱스가 없습니다. 그러나 다른 테이블을 쉽게 만들 수 있도록 comment_id 열을 자동 증가시키고 싶습니다.

테이블 "book_comments_votes"

comment_id  (medium_int)
user_id     (medium_int)

Primary key -> (comment_id, user_id)

사용자는 책 댓글 당 한 번만 투표 할 수 있습니다. 이 테이블은 기본 키로이 규칙을 적용합니다.

질문:

"book_comments"테이블의 comment_id 열을 자동으로 늘리는 것과 같이 기본 키가 아닌 키를 자동으로 늘릴 수 있습니까?

대안, 토론 :

위에서 설명한대로 간단하게이 작업을 수행하고 싶습니다. 대안은 유망하지 않습니다.

제안? 생각?

 

해결 방법

 

그래 넌 할수있어. 해당 열을 인덱스로 만들기 만하면됩니다.

CREATE TABLE `test` (
  `testID` int(11) NOT NULL,
  `string` varchar(45) DEFAULT NULL,
  `testInc` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`testID`),
  KEY `testInc` (`testInc`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;


insert into test(
  testID,
 string
)
values (
1,
    'Hello'
);


insert into test( 
testID,
 string
)
values (
2,
    'world'
);

'testInc'에 대한 자동 증가 값이있는 행을 삽입합니다. 그러나 이것은 정말 멍청한 일입니다.

당신은 이미 그것을 할 올바른 방법을 말했습니다.

"comment_id PK를 만들고 book_id, timestamp, user_id에 대한 고유 색인을 통해 무결성을 강화하십시오."


 

참조 페이지 https://stackoverflow.com/questions/14086324

 

 

반응형

댓글