2013-10-20 50 views
0

我在MySQL中创建一个模式,它(这个问题)的目的有两个表:MySQL的自动增量两部分组成的主键

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

每个项目都可以有很多任务,每个任务属于一个项目。我将项目设置为主键,并在项目添加时自动递增。理想情况下,我想构建任务,以便每个任务的主键都是pid和tid。对于属于同一项目的任务,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)?

我在Python 3与瓶microframework编程和在Windows 7

+0

你可以使用触发器来创建'PID/tid'值,只要你'INSERT'一个新的任务。 – 2013-10-20 20:53:01

+0

你读过这个吗? http://dev.mysql.com/doc/refman/5.1/en/example-auto-increment.html似乎与myisam引擎一起工作。 –

+0

所以我会用触发器来计算MySQL内部的tid而不是Python?我当然可以那样做! 编辑:谢谢凯!这个链接就是我正在寻找的! (我想我现在应该熟悉MySQL手册) – Maythe

回答