I am implementing a custom list definition that contains several columns. A requirement to one of the columns is, that it can only contain unique values. If a user enters a value that is already present in another list item, a validation error must be shown.
Are there any options for doing this OOTB, perhaps in the list definition or in a custom field type? Or do I need to implement this functionality myself?
To ensure unique values in a column you have two possiblies.
You can override the Validate() method for your field type, and query the list for items with the same value and set the IsValid property accordingly.
Write your own ItemAdding and ItemUpdating eventreceivers to query the list.