在mysql中插入一行后,最新一行根据日期上升

时间:2015-05-17 06:24:17

标签: mysql sql sql-insert

在表格中插入行不会使其成为最后一行,而是在某些行上方插入一行。

insert into table (revenueSB40, revenueSM40, sum, eedate) 
      values(100,200,300,'2015-05-17');

最后几行:

| 41200 | 80620 | 121820 | 2015-05-11 00:00:00 |   
| 35440 | 86100 | 121540 | 2015-05-12 00:00:00 |   
| 30160 | 62600 | 92760  | 2015-05-13 00:00:00 |  
| 19800 | 31780 | 51580  | 2015-05-16 00:00:00 |  
| 58480 | 90860 | 149340 | 2015-05-15 00:00:00 |  
| 59440 | 52500 | 111940 | 2015-05-14 00:00:00 |

1 个答案:

答案 0 :(得分:1)

RDBMS表表示无序集。没有“表的第一行”或“表的最后一行”这样的东西。当您发出不带select子句的order by语句时,数据库可能会以其认为合适的顺序返回行(“fit”,通常表示“最快”)。即使表中的数据没有改变,这些结果的顺序也可能根据内部缓存的状态或执行的维护操作(例如,重建索引)而改变。

虽然数据库按插入顺序返回行是很常见的(特别是对于没有任何索引的小表),但这绝对不是强制性的,你应该依赖于它行为。

如果要对返回的行的顺序有任何保证,则必须使用order by子句明确说明所需的顺序,例如:

SELECT   *
FROM     `table`
ORDER BY revenueSB40