2013-10-20 4 views
0
내가 (이 질문의 목적을 위해) 두 테이블을 가지고있는 MySQL 스키마를 만드는거야

:MySQL의 자동 증가 두 부분으로 기본 키

Projects (pid:int) 
Tasks (pid:int,tid:int) 

각각의 프로젝트는 많은 작업을 할 수 있으며, 각 작업 하나의 프로젝트에 속합니다. Projects에서 pid를 기본 키로 설정하고 프로젝트가 추가 될 때 자동 증가하도록 설정했습니다. 이상적으로는 각 작업의 기본 키가 pid 및 tid가되도록 작업을 구성하고 싶습니다. tid는 동일한 프로젝트에 속하는 작업에 대해 증가하지만 새로운 프로젝트마다 다시 1로 시작합니다.

(pid,tid) = (1,1)(1,2)(1,3)(2,1)(2,2)(3,1)(3,2)(3,3)(3,4) 

나는 프로젝트에서 가장 높은 tid를 찾고 다음 작업을 위해 수동으로 증가시키는 쿼리를 작성하여이 효과를 얻을 수 있음을 알고 있습니다. 그러나 가능한 경우 쿼리없이이 작업을 수행하려고합니다. 이 기능을 구현하는 더 간단하고 효율적인 방법이 있습니까 (예 : AUTO_INCREMENT).

은 내가 플라스크 microframework 파이썬 3 프로그래밍과 MYISAM의 수에

+0

당신은'PID/tid' 값 때마다'INSERT' 새 작업을 생성하기 위해 트리거를 사용할 수 있습니다. –

+0

이 책을 읽었습니까? http://isv.mysql.com/doc/refman/5.1/en/example-auto-increment.html myisam 엔진을 사용하는 것으로 보입니다. –

+0

그래서 파이썬 대신 MySQL 내부에서 tid를 계산하기 위해 트리거를 사용하고 있을까요? 나는 확실히 그것을 할 수 있었다! 편집 : 고마워, 케이! 그 링크는 내가 찾고있는 것입니다! (필자는 MySQL 매뉴얼을 지금 알고 있어야한다고 생각합니다.) – Maythe

답변