This query should do the trick:
WITH line AS
(ST_Dump(geom)).geom AS geom
ST_AddMeasure(line.geom, 0, ST_Length(line.geom)) AS linem,
generate_series(0, ST_Length(line.geom)::int, 10) AS i
geometries AS (
(ST_Dump(ST_GeometryN(ST_LocateAlong(linem, i), 1))).geom AS geom
ST_SetSRID(ST_MakePoint(ST_X(geom), ST_Y(geom)), 31468) AS geom
At first you select the distinct linestrings from your polylinestring column with
Then you have to define the measure elements with
ST_AddMeasure, starting with 0 (begin of the linestring) and the end of the linestring (same as the length of the linestring).
Generate_series creates a series over the this measurement by the step of 10. Here you can define
"n metres" (in this example 10 meters). The
i value begins anew for every linestring.
ST_GeometryN you create a multidimensional point geometry.
Finally you have to extract the X and Y values of this geometry and create a point from it.
The result could look like this:
To be fair, I want to add this information:
The idea and the query in this answer is extracted from a query that I'm using to create drape lines from DEMs in PostGIS. The excellent implementation of this is explained in this article from Mathieu Leplatre.