Alex is correct. Here's an example of using transform_table for what you described:
-record(cust, {id, name, street_address, street_address2, city, state, zip}). % This should be the record definition
mnesia:transform_table(
cust,
fun({cust,
Id,
Name,
StreetAddress,
City,
State,
Zip
}) ->
{cust,
Id,
Name,
StreetAddress,
undefined, % This is setting it to the atom undefined. You could also do "", or anything you want.
City,
State,
Zip
}
end,
record_info(fields, cust)
).
What happens is that the variables in the first tuple (Id, Name, StreetAddress, etc) get set automatically from the existing record. Then the record is transformed into the second tuple (the fun's return), using those set variables to assign the new values. This process is applied to every existing record in the table.
Keep in mind the function isn't magical in any way, so you can do anything in there that you need to, for example checking ids or whatever. But for simply adding a field to the record, you can do it like I show here.
If you're doing it from the console, be sure to load in the record definition using rr() or something.
Here's the docs for transform_table: http://www.erlang.org/doc/man/mnesia.html#transform_table-3