gpt4 book ai didi

插入时可以进行 SQL 排序吗?

转载 作者:行者123 更新时间:2023-12-03 16:45:22 25 4
gpt4 key购买 nike

在 SQL 中,在插入到预先排序的表中时,是否可以在对行与整个表进行排序的同时插入一行?如

create table positional_order (
num number,
txt varchar2(10)
);

现有表
row 1   (3, 'three' );
row 2 (4, 'four' );

插入新行
row 3   (1, 'one');

插入后

表变成
row 1   (1, 'one');
row 2 (3, 'three' );
row 3 (4, 'four' );

这可能吗?

或者我必须将行插入表中,然后选择 order by ?

顺便说一句,我正在使用 sqlite。

谢谢,

最佳答案

简短回答:表格是集合,没有顺序。

长答案:聚集索引与它来得一样近,即使那也不是那么接近——没有 order by,查询引擎可以自由地以它认为最好的任何顺序返回结果。聚集索引意味着仅对该表的查询将最有可能按照为索引定义的顺序返回行,但不要指望它。现在,也就是说,所有索引都定义了一个顺序,聚集索引定义了磁盘上记录的顺序,虽然这并不能保证您的结果以任何特定顺序排列,但在大多数情况下它确实使它可能。但是在对自动生成/递增列以外的任何内容使用聚集索引之前,我会仔细考虑。如果您插入具有聚集索引的表,则可能必须重新定位磁盘上的记录,这是一项昂贵的操作。

关于插入时可以进行 SQL 排序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7669315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com