Vector map attribute transfer between connected tables

From GRASS-Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Q: I have a vector layer FOO which is linked to two tables in layers 1 and 2. The categories for each vector element are different in layer 1 and (e.g., a certain area may have the cat value "51" in layer 1 and a cat value of "42" in layer 2). Let's assume that layer 1 has a VARCHAR column containing the names of the region (e.g. database_layer_1: 51,"Wolfenstein", database_layer_2: 42 ). If a new VARCHAR column is added to layer 2 by v.db.addcol, how can the names from layer 1 be copied into it?

A: Try this (assuming that the varchar attribute in layer 1 is called 'name'):

   # add new column on layer 2 (replace SIZE with the desired length):
   v.db.addcol regions layer=2 col='name varchar(SIZE)'
   # add cagetory numbers into geometry and new table for layer 2:
   v.category regions layer=2 option=add
   # get over the relevant attributes:
   v.to.db regions layer=2 option=query col=name qlayer=1 qcolumn=name

See also