0

在 mySQL 中,如果我创建了两个表并且表中包含引用到另一个表的外键。我已经在另一个表中输入了数据,并且也在其中输入了定义的外键。有没有办法让外键在第二个表中自动更新而无需输入整个数据?例如,我有一个客户表,其中包含 2 个字段 - customerID 和 customerName。另一个表是一个发票表,它有 3 个字段——invoiceID、cost 和 customerID,其中 customerID 是外键。因此,如果我在客户表和发票表中输入数据,因为客户数量非常多,我不想继续在发票表中输入 customerID。由于 customerID 是另一个表中的外键,我如何让它自动从客户表中引用它?

4

2 回答 2

0

您可以自动添加预定义的编号,例如 1,但这会将所有发票分配给客户#1。

另一方面,您可以在添加发票时自动添加客户。为此,您需要控制 customerID,如果具有给定 ID 的客户不存在,则将一个新客户插入到客户表中,名称为空。在那之后,您仍然需要输入这些客户的名称,但不是一个,这会让事情(也许)更容易。

我认为你在这里有一个误导性的想法。我强烈建议阅读一本书或在线查看教程或检查示例项目的数据库表。

于 2013-04-21T08:43:45.877 回答
0

如果您在发票数据中包含客户名称并且已经填充了客户数据,您可以这样做

INSERT INTO tbl_invoice (invoiceData, invoiceData2, customerID)
  SELECT 'value1', 'value2', customer.customerID
  FROM tbl_customer customer
  WHERE customer.customerName = 'customer name'

因此,您无需直接处理客户 ID。

MySQL 中没有自动功能可以做到这一点。如果需要,可以使用触发器。

于 2013-04-21T08:43:33.213 回答