Database / Mnesia basics Interview questions
What is record_info used for when creating a Mnesia table?
record_info(fields, RecordName) is a compiler built-in that expands, at compile time, to the
literal list of field names declared in a -record definition — it's the standard way to
feed a table's attributes option without retyping the field list by hand.
-record(person, {id, name, age}). mnesia:create_table(person, [{attributes, record_info(fields, person)}]). %% expands to: {attributes, [id, name, age]}
Using record_info/2 instead of a hardcoded list keeps the table definition and the record
definition from silently drifting apart — if you add a field to the -record, the
attributes list picks it up automatically the next time the module compiles, rather than
requiring you to remember to update two separate places by hand.
More Related questions...