1

並列クエリでのSQLについて質問があります。たとえば、次のクエリがあるとします。

INSERT INTO tblExample (num) VALUES (1), (2)

そしてこのクエリ:

INSERT INTO tblExample (num) VALUES (3)

ファイナルテーブルは次のようになります。

num
---
1
2
3

しかし、これら2つのクエリが並行して実行され、ファイナルテーブルが次のようになるオプションがあるのではないかと思います。

num
---
1
3
2

誰かが答えを知っていますか?

前もって感謝します!

4

2 に答える 2

1

テーブルがどのように「見える」かは、(SELECTステートメントで)どのようにテーブルを要求したかによって異なります。ORDER BYがないと、テーブルの順序は未定義です。

ORDER BYは、結果セットの行を並べ替える唯一の方法です。この句がないと、リレーショナルデータベースシステムは任意の順序で行を返す可能性があります。順序付けが必要な場合は、アプリケーションから送信されるSELECTステートメントでORDERBYを指定する必要があります。

例えば:

SELECT num FROM tblExample ORDER BY num ASC

1

2

3

SELECT num FROM tblExample ORDER BY num DESC

3

2

1

列を手動で注文する場合は、新しい列を追加して並べ替えることができます。

+-----+-------+
| num | order |
+-----+-------+
| 1   | 1     |
| 2   | 3     |
| 3   | 2     |
+-----+-------+

SELECT num FROM tblExample ORDER BY order ASC

1

3

2

于 2012-09-20T22:51:43.410 に答える
1

SQLには順序はありません。ORDER BY句を追加してクエリを並べ替えることができます

SELECT * FROM tblExample ORDER BY num

または、タイムスタンプ列をテーブルに追加して、それに従って並べ替えることもできます。

于 2012-09-20T22:53:22.677 に答える