获取sql表的最后一行更新


Get the last updated row of sql table

我有一个名为tbl_faults的SQL Server数据库表。在该表中,fault_id是主(int)并且自动递增。在同一个表中,我有另一个名为fault_reference(int)的字段,并且不是自动递增的。

当我在表中输入数据时,fault_reference的值应该与fault_id的值相同。

有人能给我提个办法吗。

$sql='SELECT Top 1 FROM "tbl_faults" ORDER BY "fault_id"';

我试图使用它来获取fault_id的最后一个更新值,并在插入新行时使用它,但这似乎不起作用。

SELECT fault_id FROM tbl_faults ORDER BY fault_id DESC LIMIT 1

应提供插入的最后一个id。

我想你可以通过得到这个

$sql='SELECT Top 1 FROM "tbl_faults" ORDER BY "fault_id" DESC ';

要更新您的记录,我认为您可以使用两种方法。

  1. 插入完成后写入触发器以更新行

  2. 允许设置fault_reference int NULL。然后编写一个更新查询,将行fault_reference值更新为fault_id,其中fault_refererence为NULL。

这只是一个想法。请检查。

我认为,最好在单个存储过程中执行,使用SCOPE_IDENTITY函数,该函数返回插入同一范围内标识列的最后一个标识值。作用域是一个模块:存储过程、触发器、函数或批。因此,如果两个语句在同一存储过程、函数或批处理中,则它们在同一范围内
因为当你在几个批次中进行时,fault_id有可能在另一个批次中递增。