Vector map attribute transfer between connected tables

From GRASS-Wiki
Jump to navigation Jump to search

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