Чувствительны ли регистр имен столбцов и таблиц в MySQL?
если у меня есть имена столбцов, называется category_id
и Category_Id
, они разные?
и если у меня есть таблица под названием category
и Category
, они разные?
5 ответов:
в Unix имена таблиц чувствительны к регистру. На окнах их нет. Забавно, не правда ли? Вроде как их соответствующие файловые системы. Как вы думаете, это совпадение?
другими словами, если вы планируете развертывание на машине Linux, лучше Протестируйте свой SQL против MySQL на базе Linux или будьте готовы к таинственным ошибкам "таблица не найдена" во время prod. В наши дни виртуальные машины дешевы.
имена полей не зависят от регистра.
редактировать: мы говоря об операционной системе на MySQL сервер машина, а не клиент.
из MySQL документация:
имена баз данных и таблиц не чувствительны к регистру в Windows, и case чувствительный в большинстве разновидностей Unix. Одним из заметных исключений является Mac OS X, который основан на Unix, но использует тип файловой системы по умолчанию (HFS+), который не чувствителен к регистру.
и
имена столбцов и индексов не чувствительны к регистру на любой платформе, а также псевдонимы столбцов.
для имен баз данных и таблиц это зависит от базовой операционной системы. Смотрите 8.2.2. Идентификатор Чувствительность К Регистру
вы можете найти этой надо читать. Можно установить чувствительность к регистру в MySQL, но это действительно только проблема, когда вы работаете в нескольких средах.
Как ни странно это Кажется чтобы быть чувствительным к регистру в MySQL Workbench даже на Windows.
мы просто попытались изменить результаты оператора SELECT, но верстак не позволил нам, жалуясь, что наш запрос не включал первичный ключ таблицы (что он сделал, но в нижнем регистре), поэтому результат был доступен только для чтения. Выполнение того же запроса с первичным ключом в правильном случае (ID вместо id) позволит нам редактировать результаты, как ожидалось.