## NAME

db.copy - Copy a table.
Either 'from_table' (optionally with 'where') can be used or 'select' option, but not 'from_table' and 'select' at the same time.

## KEYWORDS

database, attribute table, SQL

## SYNOPSIS

db.copy
db.copy --help
db.copy [from_driver=name] [from_database=name] [from_table=name] [to_driver=name] [to_database=name] to_table=name [where=sql_query] [select=string] [--overwrite] [--help] [--verbose] [--quiet] [--ui]

### Flags:

--overwrite
  Allow output files to overwrite existing files
--help
  Print usage summary
--verbose
  Verbose module output
--quiet
  Quiet module output
--ui
  Force launching GUI dialog

### Parameters:

from_driver=name
  Input driver name
  Options: dbf, ogr, pg, sqlite
  Default: sqlite
from_database=name
  Input database name
  Default: $GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db
from_table=name
  Input table name (only, if 'select' is not used)
to_driver=name
  Output driver name
  Options: dbf, ogr, pg, sqlite
  Default: sqlite
to_database=name
  Output database name
  Default: $GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db
to_table=name [required]
  Output table name
where=sql_query
  WHERE conditions of SQL statement without 'where' keyword
  Example: income < 1000 and population >= 10000
select=string
  Full select statement (only, if 'from_table' and 'where' is not used)
  E.g.: SELECT dedek FROM starobince WHERE obec = 'Frimburg'

## DESCRIPTION

db.copy allows the user to copy a table between two databases. Databases can be connected through different drivers (see examples below).

## NOTES

Attribute tables can be copied using db.copy and, when to be associated to a vector map, assigned to the map with v.db.connect. Current connection settings are saved in the file $LOCATION/vector_map/dbln.

## EXAMPLES

### From DBF to PostgreSQL

Storing table 'geonames.dbf' (in current directory) into PostgreSQL through ODBC:

    db.copy from_driver=dbf from_database='$GISDBASE/$LOCATION_NAME/PERMANENT/dbf' \
      from_table=geonames to_driver=pg to_database="host=pgserver,dbname=testdb" \
      to_table=geonames

### From PostgreSQL to DBF

    db.copy from_driver=pg  from_database="host=pgserver.example.org,dbname=testdb" \
      from_table=origtable to_driver=dbf \
      to_database='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf' to_table=origtable

### From PostgreSQL to PostgreSQL with condition

    db.copy from_driver=pg  from_database="host=localhost,dbname=testdb" \
      from_table=geonames to_driver=pg to_database="host=localhost,dbname=testdb" \
      to_table=selection where="cat < 500"

### From DBF to SQLite

    db.copy from_driver=dbf from_database='$GISDBASE/$LOCATION_NAME/PERMANENT/dbf' \
       from_table=geonames_features to_driver=sqlite \
       to_database='$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db' to_table=geonames_features

    # convenient viewer:
    sqlitebrowser $HOME/grassdata/nc_spm_08/user1/sqlite/sqlite.db

### From SQLite to DBF

    db.copy from_driver=sqlite from_database='$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db' \
       from_table=ammprv to_driver=dbf to_database='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/' \
       to_table=ammprv

## SEE ALSO

db.connect, db.drivers, db.login, v.db.connect, v.clean

GRASS SQL interface

## AUTHOR

Radim Blazek, ITC-irst, Trento, Italy

## SOURCE CODE

Available at: db.copy source code (history)

Accessed: Friday Jun 05 19:24:41 2026

Main index | Database index | Topics index | Keywords index | Graphical index | Full index

© 2003-2023 GRASS Development Team, GRASS GIS 7.8.8 Reference Manual