Building up the banks of rivers with flood defence walls etc. is self defeating as once these defences are breached, as is the case in Cumbria where only a few years ago they increased the height of the defences in places such as Carlisle and Keswick. These defences trap greater volumes of water so if and when they are breached huge volumes of water inundate the areas they are supposedly protecting, far much more than before the defences were heightened. This is pure common sense which the Americans discovered years ago with the Mississippi levees and Germany discovered with the Rhine in places like Cologne.
The way to prevent flooding is, as Brian says, is to ensure that the volumes of water coming down the rivers have an uninterrupted flow to the sea by dredging the river bottoms and their exits to the sea. The flooding of the Somerset levels a few years ago proved this as dredging of the canals etc. there had been halted years previously but was hastily restarted once the water levels dropped. In addition, as in the Mississippi delta, relief canals need to be built to assist in taking the volumes of flood water safely away from the flood plains to the sea but we never learn as its cheaper to build higher defences rather than carrying out proper dredging of our rivers to ensure they can handle the predicted volumes of water caused by these storms.
Weirs etc. built by man in recent years that supposedly control water flow, only serve to create barriers that allow a build up of water upstream of them resulting in a far greater volume of water flowing over them at a far greater speed than before those weirs were built.
rgds
JA