If you have a large number of SQL commands to process, it is much much faster to place all the SQL statements into a text file and use db.execute's input file parameter than it is to process each statement individually in a loop. If multiple instruction lines are given, each SQL line must end with a semicolon.
Please see the individual sql driver pages for how to create a new database.
echo 'create table soils (cat integer, soiltype varchar(10) )' | db.execute
Create a new table using a file with SQL statements:
db.execute driver=odbc database=g60test input=file.sql
Insert new row into attribute table:
echo "INSERT INTO nobugs (id,name,east_gb,north_gb) values (30,'Ala',1657340,5072301)" | db.execute
Update attribute entries to new value based on SQL rule:
echo "UPDATE roads SET travelcost=5 WHERE cat=1" | db.execute
Update attribute entries to new value based on SQL rule:
echo "UPDATE dourokukan SET testc=50 WHERE testc is NULL" | db.execute
Delete selected rows from attribute table:
echo "DELETE FROM gsod_stationlist WHERE latitude < -91" | db.execute
Add new column to attribute table:
echo "ALTER TABLE roads ADD COLUMN length double" | db.execute
Drop table (not supported by all drivers)
echo "DROP TABLE fmacopy" | db.execute
Update attribute with multiple SQL instructions in file (e.g., file.sql,
instruction line must end with a semicolon):
UPDATE roads SET travelcost=5 WHERE cat=1; UPDATE roads SET travelcost=2 WHERE cat=2; cat file.sql | db.execute
Last changed: $Date: 2007/05/17 08:55:11 $