检索插入数据库的最后记录值的最佳方法
Best way to retrieve last records values inserted into database
我正在将记录保存到客户 table 中,客户 table 有一个自动递增的客户编号。我想知道在创建新生成的客户编号后直接获取该编号的最佳方法是什么?例如,假设客户 table 有 3 列,ID、姓名、姓氏。我使用以下代码:
database.tbCustomer.Insert;
database.tbCustomerName.Value := edtName.Text;
database.tbCustomerSurname.Value := edtSurname.Text;
database.tbCustomer.Post;
因此,完成此操作后,我需要获取创建的 ID,因为我需要将其用作另一个 table 中的 FK。所以我认为最简单的方法是只转到客户 table 中的最后一条记录,但是如果创建客户的人数超过 1 个,这就会出现问题。
database.tbCustomer.Last;
但是如果同时创建超过 1 个客户,这种方法可能会导致返回错误的 ID。那么我如何获得刚刚创建的客户的客户 ID?使用 Delphi,并将数据存储在 mysQL,使用 FireDAC。
您要找的可能是GetLastAutoGenValue
。参见 documentation
我正在将记录保存到客户 table 中,客户 table 有一个自动递增的客户编号。我想知道在创建新生成的客户编号后直接获取该编号的最佳方法是什么?例如,假设客户 table 有 3 列,ID、姓名、姓氏。我使用以下代码:
database.tbCustomer.Insert;
database.tbCustomerName.Value := edtName.Text;
database.tbCustomerSurname.Value := edtSurname.Text;
database.tbCustomer.Post;
因此,完成此操作后,我需要获取创建的 ID,因为我需要将其用作另一个 table 中的 FK。所以我认为最简单的方法是只转到客户 table 中的最后一条记录,但是如果创建客户的人数超过 1 个,这就会出现问题。
database.tbCustomer.Last;
但是如果同时创建超过 1 个客户,这种方法可能会导致返回错误的 ID。那么我如何获得刚刚创建的客户的客户 ID?使用 Delphi,并将数据存储在 mysQL,使用 FireDAC。
您要找的可能是GetLastAutoGenValue
。参见 documentation