我想按表名“ EmpID”对表“ Employee”进行排序,并使这些更改持久化。
这是我的员工表。 “ EmpID”是主键。
EmpID EmpName City
Ram 234 HYD
Shyam 130 BLR
Madan 894 KAN
Ramesh 101 CHN
所以我写了一个SQL查询
Select * FROM Employee ORDER BY EmpID ASC;
EmpID EmpName City
Ramesh 101 CHN
Shyam 130 BLR
Ram 234 HYD
Madan 894 KAN
但它只会生成排序格式的resultSet,但实际表不会永久更改。
现在,当我运行Select * FROM Employee时,我会再次获得原始表,而不是更新后的表。
Select * FROM Employee;
EmpID EmpName City
Ram 234 HYD
Shyam 130 BLR
Madan 894 KAN
Ramesh 101 CHN
那怎么办呢?
答案 0 :(得分:0)
我认为您在这里缺少数据库原理的一些基本基础知识。存储引擎实际上并没有一个有序记录的概念,它只是根据插入顺序存储数据,并以最合适的方式将数据写入磁盘。
您可以通过遍历结果集并逐行将数据插入到新表中来尝试持久化数据,但是即使那样也不能保证您的订单。这意味着您每次添加/删除记录时都必须重复此操作。
确实没有正当的理由想要操纵数据的持久化方式。如果您有依赖于empId排序的数据在该表上运行的操作,则需要以这样的方式编写您的操作:它们使用order by子句检索数据。