Preventing Duplicate Values in Fields

You can prevent duplicate values in one or more table fields by creating a primary or candidate index using an expression that contains those fields. When you include one or more fields in an index expression, Visual FoxPro generates an index key based on those fields for each record that uniquely identifies the record. When a new record is entered, you can compare index keys for the new record and the existing records to determine whether a duplicate record already exists and prevent the duplicate record from being added to the table.

Tip

If your table is part of a database, use a primary or candidate index. If your table is a free table or already has a primary index, you must use a candidate index.

For example, suppose you have a table that stores the area code and phone number in two columns. The following table illustrates these two columns.

Area code Phone number

206

444-nnnn

206

555-nnnn

313

444-nnnn

Both the area code column and phone number column contain values that duplicate other values in the respective columns. However, no phone numbers are duplicated because combining both fields creates a row containing the complete phone number. Likewise, if the primary or candidate index included both fields in the index expression, the rows in the example would not be considered duplicates. Therefore, if you attempted to enter a phone number that contained exactly the same area code and phone number as exists in one of the rows, Visual FoxPro would reject the entry as a duplicate.

See Also

Concepts

Index Creation Based on Expressions

Other Resources

Working with Table Indexes
Working with Fields
Working with Tables (Visual FoxPro)