【发布时间】:2014-07-01 16:07:46
【问题描述】:
假设我有 2 个 SQL 表(表 1、表 2)。表 1 具有唯一 ID。表 2 具有表 1 id 的外键。
如何根据该 ID 递增。
例子:
Table 1 Table 2
ID foreign key ID
1 1 1
2 1 2
3 2 1
4 2 2
2 3
3 1
3 2
3 3
etc..
基本上,创建表的 sql 语法是什么?
【问题讨论】:
-
你想达到什么目的?为什么?
-
我不明白你为什么想要这个。你几乎肯定在滥用什么东西。
-
嗯?你的意思是?这只是一些很好的功能。基本上可以说你有一张学校的桌子和一张学生的桌子。 1 所学校拥有该特定学校的唯一 ID 的学生数量。所以来自学校 1 的学生 1 与来自学校 2 的学生 1 不同。基本上只是重用索引孩子的一种方式(对于这个例子);
-
公认的做法(被比你我聪明的人所接受)不是这样做的; Table2 的 ID 应该是唯一的,而不是相对于 Table1 的 ID 唯一的(各种原因,从可读性和简单性到性能和可索引性)。如果你真的必须这样做,你将需要一个触发器和一个聪明的函数。这不是 mysql 的内置功能。
-
另一个常见的应用是发票上的 lineItemNumber,其中(按照惯例),单独的表用于 Invoice LineItems(InvoiceId、LineItemNumber、productId、Quantity、UnitPrice),其中 PK 是( InvoiceId, LineItemNumber)