programing

MySQL에서 기본 키가 아닌 필드를 자동으로 증가시켜야 합니다.

newstyles 2023. 9. 16. 08:43

MySQL에서 기본 키가 아닌 필드를 자동으로 증가시켜야 합니다.

지금은 테이블이 있는데 그 테이블의 주요 키는auto_incrementfield. 그러나 기본 키를 다음과 같이 설정해야 합니다.username,date(날짜와 중복되는 사용자 이름이 있을 수 없도록 하기 위해).

필요합니다.auto_increment그러나 필드는 행 정보를 변경합니다(삭제 및 삭제).

이 상황은 보통 어떻게 됩니까?

감사합니다!

(사용자 이름, 날짜) 의 합성에 고유한 인덱스를 설정하기만 하면 됩니다.

ALTER TABLE `table` ADD UNIQUE INDEX `name` (`username`, `date`);

아니면, 당신은 다음과 같이 시도할 수 있습니다.

ALTER TABLE `table` DROP PRIMARY KEY, ADD PRIMARY KEY(`username`,`date`);

그리고 후자의 경우에는 NOT NULL로 선언되어야 한다고 생각합니다.

이것은 오래된 질문이라는 것을 알고 있습니다. 여기 제가 문제를 해결한 방법이 있습니다.

ALTER TABLE `student_info` ADD `sn` INT(3) UNIQUE NOT NULL AUTO_INCREMENT FIRST         

다음과 같은 것을 사용합니다.

CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  user VARCHAR(32) NOT NULL,
  thedate DATE NOT NULL,
  UNIQUE(user,thedate)
);

테이블을 이미 가지고 있고 사용자+날짜에 고유한 제약 조건을 추가하려면 실행합니다.

ALTER TABLE users  ADD UNIQUE KEY user_date_idx (user,  thedate);

대신 현재 기본 키를 고유 키로 변경합니다.

ALTER TABLE table DROP PRIMARY KEY, ADD UNIQUE KEY(username,date);

auto_increment는 이후 문제없이 정상적으로 작동합니다.또한 auto_increment 필드에 고유한 키를 배치하여 행 처리에 사용해야 합니다.

ALTER TABLE table ADD UNIQUE KEY(id);

언급URL : https://stackoverflow.com/questions/1151314/i-need-to-auto-increment-a-field-in-mysql-that-is-not-primary-key