MySQL регистрозависимый внешний ключ для текстовых данных - PullRequest
3 голосов
/ 21 июня 2010

У меня есть ISO 639-2 языковые коды (англ, fre, hin и т. Д.) На английском языке в качестве первичного ключа в моей основной таблице. Этот столбец является внешним ключом в других таблицах. Теперь моя проблема заключается в том, что мой мастер имеет только значения нижнего регистра, из-за человеческой ошибки некоторые значения были добавлены в другие таблицы с идентификатором языка в смешанных случаях. Несмотря на наличие внешнего ключа, это не помешало ему произойти.
Сейчас я впервые работаю в MySQL, ранее я работал в Oracle, и к ключам применяется чувствительность к регистру. Что нужно сделать, чтобы иметь такую ​​же функциональность в MySQL? И какой должен быть тип столбца?
Прямо сейчас это varchar(3). Должен ли я преобразовать это во что-то еще? Я не собираюсь использовать любое условие like в любом запросе, только = и in.

1 Ответ

5 голосов
/ 21 июня 2010

Это происходит потому, что параметры сортировки столбца нечувствительны к регистру - что-то вроде latin1_swedish_ci меняет его на регистр с учетом регистра - latin1_swedish_cs

ALTER TABLE t1 MODIFY col1 VARCHAR (3) CHARACTER SET latin1 COLLATE latin1_swedish_cs; 1004

текст ссылки
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...