0

In unserer Software verwenden wir immer noch postgresql 8.4. Auf Archlinux konnte ich keine Möglichkeit finden, 8.4 zu installieren, also habe ich eine Aufgabe mit 9.5 gestartet und wollte sie danach in 8.4 übersetzen. Jetzt kann ich die UPDATE-Abfrage für beide Versionen ausführen, aber ich bekomme unterschiedliche Ergebnisse.update Ergebnisse in postgresql 8.4 und 9.5 sind unterschiedlich

Abfrage:

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]')); 

-Workflow ist, dass ich die Datenbank und Dump das gleiche SQL-Dump in beiden Versionen reinit.

Auf 8.4 zeigt die Nachricht "UPDATE 2689816" und auf 9.5 heißt es "UPDATE 241294".

Als ich

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

laufen bekomme ich das gleiche Ergebnis mit beiden Versionen:

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

Das ist, was mich verwirrt die meisten. Warum scheint regexp_matches das Muster anders zu interpretieren als regexp_replace?

Hat jemand Erfahrung mit der Angelegenheit?

Antwort

0

Ich war nur dumm, das Skript nur entfernt ein \ und ich sah es gerade in meiner Frage hier, Entschuldigung für die Frage

Verwandte Themen