Skip to content

v.db.addtable

Creates and connects a new attribute table to a given layer of an existing vector map.

v.db.addtable map=name [table=string] [layer=integer] [key=name] [columns=name type [,name type,...]] [--verbose] [--quiet] [--qq] [--ui]

Example:

v.db.addtable map=name

grass.script.run_command("v.db.addtable", map, table=None, layer=1, key="cat", columns=None, verbose=False, quiet=False, superquiet=False)

Example:

gs.run_command("v.db.addtable", map="name")

Parameters

map=name [required]
    Name of vector map
    Or data source for direct OGR access
table=string
    Name of new attribute table (default: vector map name)
layer=integer
    Layer number where to add new attribute table
    Default: 1
key=name
    Name of key column
    Must refer to an integer column
    Default: cat
columns=name type [,name type,...]
    Name and type of the new column(s) ('name type [,name type, ...]')
    Types depend on database backend, but all support VARCHAR(), INT, DOUBLE PRECISION and DATE. Example: 'label varchar(250), value integer'
--help
    Print usage summary
--verbose
    Verbose module output
--quiet
    Quiet module output
--qq
    Very quiet module output
--ui
    Force launching GUI dialog

map : str, required
    Name of vector map
    Or data source for direct OGR access
    Used as: input, vector, name
table : str, optional
    Name of new attribute table (default: vector map name)
layer : int, optional
    Layer number where to add new attribute table
    Default: 1
key : str, optional
    Name of key column
    Must refer to an integer column
    Used as: name
    Default: cat
columns : str | list[str], optional
    Name and type of the new column(s) ('name type [,name type, ...]')
    Types depend on database backend, but all support VARCHAR(), INT, DOUBLE PRECISION and DATE. Example: 'label varchar(250), value integer'
    Used as: name type
verbose: bool, optional
    Verbose module output
    Default: False
quiet: bool, optional
    Quiet module output
    Default: False
superquiet: bool, optional
    Very quiet module output
    Default: False

DESCRIPTION

v.db.addtable creates and adds a new attribute table to a given vector map. It links the table to the specified layer of the vector map. If the vector map is not yet linked to any table, new a database link is established based on the MAPSET database settings (see db.connect).

NOTES

v.db.addtable is a front-end to db.execute to allow easier usage.

v.db.addtable will only insert category values into the table for those features which actually have a category value in the relevant layer. The user can add category values automatically by using v.category or manually with wxGUI vector digitizer before running v.db.addtable. Or one can run v.db.addtable first and then use either a combinatino of v.category + v.to.db or wxGUI vector digitizer to add the relevant lines to the table.

The supported types of columns depend on the database backend. However, all backends should support VARCHAR, INT, DOUBLE PRECISION and DATE.

The existing database connection(s) can be verified with v.db.connect.

EXAMPLE

Adding a new attribute table with a single column to default layer 1:

g.copy vect=roadsmajor,myroads
v.db.addtable myroads columns="slope double precision"
v.db.connect -p myroads
v.info -c myroads

Adding a new attribute table with two columns to layer 2:

g.copy vect=roadsmajor,myroads
v.db.addtable myroads columns="slope double precision, roadname varchar(15)" layer=2
v.db.connect -p myroads
v.info -c myroads
v.info -c myroads layer=2

SEE ALSO

db.connect, db.droptable, db.execute, v.db.connect, v.db.dropcolumn, v.db.droptable, v.db.select, v.db.update

GRASS SQL interface

AUTHOR

Markus Neteler

SOURCE CODE

Available at: v.db.addtable source code (history)
Latest change: Friday Feb 07 19:16:09 2025 in commit a82a39f