I found a fast way to add a new column to a table.
Create the new table like the old table (
foo), but with the new column you want in it. Make the new table with a different name (
Add the records from the old table into the new table:
INSERT INTO foo_new (col1, col2, col3) SELECT col1, col2, col3 FROM foo
If you have a lot of records, you can disable index updates during insert:
ALTER TABLE foo_new DISABLE KEYS; (do insert) ALTER TABLE foo_new ENABLE KEYS;
Do an atomic table rename:
RENAME TABLE foo TO foo_old, foo_new TO foo;
SQLite has an alter table command that adds a column to the end of the table:
ALTER TABLE foo ADD COLUMN new_field INTEGER;
To add a column elsewhere in the table requires a
insert into. If you're trying to add a column in a specific location, you may not understand SQL and set theory well enough.