0

私たちのソフトウェアでは、まだpostgresql 8.4を使用しています。 Archlinuxでは、私は8.4をインストールする可能性を見つけることができなかったので、私は9.5でタスクを開始し、それを後で8.4に変換したいと考えました。今は両方のバージョンでUPDATEクエリを実行できますが、結果は異なります。postgresql 8.4と9.5での更新結果が異なる

問合せ:

UPDATE properties                
SET propertyvalue = regexp_replace(propertyvalue, E'[\u0001-\u001f]', '', 'g') 
WHERE properties_id in 
    (SELECT DISTINCT(properties_id) 
    FROM regexp_matches(propertyvalue, E'[\u0001-\u001f]')); 

ワークフローは、私は、データベースを再初期化し、両方のバージョンに同じSQLダンプをダンプするということです。

8.4では、「UPDATE 2689816」と表示され、9.5では「UPDATE 241294」と表示されます。最も私を混乱させる何

count 
-------- 
241294 
(1 row) 

:私は

SELECT count(*) 
FROM properties 
WHERE properties_id in 
    (SELECT DISTINCT(properties_id) 
    FROM regexp_matches(propertyvalue, E'[\\u0001-\\u001f]')); 

を実行すると

は、私は両方のバージョンと同じ結果を得ます。 なぜregexp_matchesはregexp_replaceとは違ったパターンを解釈しているようですか?

誰も問題を経験したことはありますか?

答えて

0

私はちょうど愚かだった、スクリプトはちょうど\を削除し、私はここで私の質問でそれを見た、質問申し訳ありません