반응형
기본 키가 아닌 키를 자동으로 늘릴 수 있습니까?
표 "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
반응형
'MySql' 카테고리의 다른 글
MySQL PDO 가져 오기 / fetchAll (0) | 2021.01.15 |
---|---|
MySQL-날짜 문자열을 날짜 유형으로 변경 하시겠습니까? (0) | 2021.01.15 |
MySQL 한 PHP 페이지에서 다른 페이지로 데이터를 전달하는 방법 (0) | 2021.01.15 |
MySQL 저장 프로 시저에 대해 NULL 기본값이있는 매개 변수 추가 (0) | 2021.01.14 |
MySQL의 타임 스탬프에서 요일 이름 가져 오기 (0) | 2021.01.14 |
댓글