UserとLanguageというEntityとuser_languagesという関係データベースが存在するとして、Userは複数のLanguageを持っているとし、Languageは複数のUserに持たれているとします。

user
    id
    languages
language
    id
    name <- 同じnameのエントリーが複数追加されてしまう。
user_language
    user_id
    language_id

このような場合のlanguageのある要素(name)の重複をなくすようなオプションはありますでしょうか。つまり別のuserが持っているlanguageを登録した時にすでにそのlanguagelanguagesテーブルに存在するときにuser_languageにそのすでに存在するlanguageidを登録し、languagesテーブルにはインサートしないようにしたいです。INSERT INTO "languages" ("name") VALUES ('JPN');を入力した時にした時に重複を避けることは可能でしょうか。
nameuniqueを指定するとエラーがでてしまいました。

Error 1062: Duplicate entry 'ENG' for key 'name'

ちなみにlanguagesのスキーマは下記のようになっています。

+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255)     | NO   | MUL | NULL    |                |
+-------+------------------+------+-----+---------+----------------+

nameにはindex:idx_name_codeを設定しています。