MySQL 5.0 (구체적으로) 값이 그룹화 열을 기반으로하는 auto_increment 필드를 갖는 방법이 있습니까?그룹 별 auto_increment
예 :
id name group_field
1 test 1
2 test2 1
1 test3 2
2 test4 2
1 test5 3
2 test6 3
내가 이것을 실현하려 어떤 '미친'방법을 통해 갈 필요가 없습니다 좋아하지만, 필요한 경우 것입니다 것입니다.
MySQL 5.0 (구체적으로) 값이 그룹화 열을 기반으로하는 auto_increment 필드를 갖는 방법이 있습니까?그룹 별 auto_increment
예 :
id name group_field
1 test 1
2 test2 1
1 test3 2
2 test4 2
1 test5 3
2 test6 3
내가 이것을 실현하려 어떤 '미친'방법을 통해 갈 필요가 없습니다 좋아하지만, 필요한 경우 것입니다 것입니다.
MyISAM 및 BDB 테이블의 경우 키의 보조 부분으로 auto_increment 필드를 사용할 수 있습니다 (예 :
CREATE TABLE foo (
id INT AUTO_INCREMENT NOT NULL,
group_field INT NOT NULL,
name VARCHAR(128),
PRIMARY KEY(group_field, id)
);
여기에 manual는 대해 생성 된 값이 AUTO_INCREMENT 컬럼이 MAX (auto_increment_column) + 1 프리픽스 = 주어진 접두어로 계산이 경우 이것은
대해 말한다 무엇 . 이는 그룹으로 데이터를 넣으려는 경우 으로 유용합니다.
composite primary keys에 대해 생각해 보셨나요?
삽입시 트리거로 group_fileld = @inserted_group을 갖는 group_field에 의해 테이블 그룹에서 max (id)를 설정하면됩니다.
이 작업은 innodb 테이블에서도 가능합니까? –
매뉴얼에는 MyISAM과 BDB 만 언급되어 있기 때문에, 나는 추측하지 않을 것이다. http://dev.mysql.com/doc/refman/5.0/en/innodb-auto-increment-handling.html을 참조하십시오. –
비 기본 키에서이 작업을 수행 할 수 있습니까? – BenR