2016-07-11 9 views
0

私はテーブルにデータを保存してから、テーブルから選択すると順序が違うので、pgadminもチェックします。
なぜですか?どのようにそれを解決するには?jsonのデータをpostgresqlに保存する順序が異なる

CREATE TABLE IF NOT EXISTS "user_role_track"(
    "id" SERIAL NOT NULL, 
    "create_date" timestamp without time zone, 
    "create_by_user_id" integer, 
    "action" integer, 
    "old_data" jsonb, 
    "new_data" jsonb 
); 

データがテーブルから

var newData = { 
    "id": userRoleId, 
    "create_date": timestamp, 
    "user_id": userId, 
    "role": role 
}; 
... 

// save with promise sync function 
var dbQueryR = yield Promise.resolve(queryPromise(dbClient, dbQuery, dbParams)); 

選択nodejsアプリで作成/あなたのJSON要素は、挿入後に混同されている、私はあなたがrigtht理解していればpgAdminで

"{"id": 2, "role": 1, "user_id": 17, "create_date": "2016-07-11 09:09:18"}" 
+1

DBMSによる最適化のために保存されたデータの順序での保証はありません。特定の順序が必要な場合は、結果をフェッチするために 'ORDER BY'を使うべきです。 – mauris

+0

@maurisありがとう。 – user1775888

+2

キーの順序が気になる場合は、 'jsonb'の代わりに' json'を使います。 – Abelisto

答えて

1

透けて見えます?..

json specs

あなたはと JSONオブジェクト内の要素の順序に依存しないでくださいすることはできません JSON order mixed up

に述べたよう

オブジェクトは、名前/値のペア

の順不同のセットです。

関連する問題