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

时间:2014-12-14 20:17:45

标签: mysql sql database

这可能吗?

例如:

record1
record2
record3

我想在record4之后插入record1

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

要添加 abl 的正确答案,如果您确实希望“记录4”出现在“记录1”之后并且有办法可以,那么您需要应用ORDER对SELECT查询的BY语句,并可能使用INDEX来提高效率。

例如:如果您的所有记录都包含数字“员工ID”,并按如下方式插入4条记录:

Rec#1:1234 Fred Smith
Rec#2:1240 Alice Bloggs
Rec#3:1260 Bill Brice
Rec#4:1239 Emma Gibbs

然后当数据库以这种方式“存储”它们时,没有一些额外的指令(例如:ORDER BY),SQL甚至不保证按此顺序返回它们!

所以

SELECT EmpID, EmpName FROM EmpTable 
每次运行命令时,

都可能以任何顺序为您提供这些记录。 在实践中,如果不添加或更改这些记录,您很可能会看到每次都返回相同的订单, 但您不能指望它!

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

SELECT EmpID, EmpName FROM EmpTable ORDER BY EmpID  

如果您有大量记录,请添加索引以帮助提高性能。 (尽管如此,这应该存在以确保主键(EmpID)的唯一性 - 即:确保您不能拥有两个具有相同ID的员工。)

相关问题