繁体   English   中英

在数据库表中的旧记录之后插入新记录

[英]insert a new record just after a old record in a database table

这可能吗?

例如:

record1
record2
record3

我想在record1之后插入record4

数据库表(我假设是关系数据库表)表示无序的记录集。 没有秩序,就没有“之后”的概念。 所以不,这是不可能的。

要添加到abl的正确答案中,如果您实际上希望“记录4”出现在“记录1”之后,并且有一种方法可以实现,那么您需要将ORDER BY语句应用于SELECT查询,并可能使用索引以提高效率。

例如:如果您的所有记录都包含数字“雇员ID”,并且您插入4条记录,如下所示:

Rec#1:1234弗雷德·史密斯
Rec#2:1240爱丽丝博客
Rec#3:1260比尔·布莱斯
Rec#4:1239艾玛·吉布斯

然后,尽管数据库以这种方式“存储”它们,而没有任何其他指令(例如:ORDER BY),SQL甚至不保证按此顺序返回它们!

所以

SELECT EmpID, EmpName FROM EmpTable 

每次您运行命令时,都可能以任何顺序为您提供这些记录。 实际上,在不添加或更改这些记录的情况下,您很可能每次都看到相同的订单, 但是您不能指望它!

要以EmpID顺序取回记录,请使用:

SELECT EmpID, EmpName FROM EmpTable ORDER BY EmpID  

如果您有大量记录,请添加索引以提高性能。 (尽管如此,无论如何它都应存在以确保主键(EmpID)的唯一性,即:确保您不能有两个具有相同ID的雇员。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM