如何在同一个表上使用select(在同一个SQL中)生成更新?
我想选择最后插入的行并用新值更新它。
答案 0 :(得分:1)
在SQL中没有“最后插入的行”这样的东西。如果你需要它,你需要以某种方式标记它。
根据SQL标准,数据库可以按任何顺序返回表的行。如果您需要特定订单,则需要使用order by
指定。在幕后数据库重新组织数据,因为他们认为这些数据可以提高性能,备份,聚类等。这些行绝不会按照您插入的顺序存储。
简单来说,SQL数据库不是Excel工作表。
话虽如此,如果你仍然需要更新最后一个“插入”行,你可以:
添加带有时间戳的额外列。然后,您可以搜索“最大”时间戳值并找到它。
添加一个带有序列号或标识列的额外列。与以前相同但使用整数。
添加一个标识最后一行的布尔标志列。但是,您需要在每个插页上“移动标记”。
将最后插入的行的“id”存储在单独的表中。您需要在每次插入时更新此ID。
在我的头脑中,这些是我能看到的解决方案。