sql >> Databáze >  >> RDS >> Mysql

Jak změnit názvy tabulek MySQL na serveru Linux tak, aby nerozlišovaly malá a velká písmena?

Citlivost MySQL na velká a malá písmena ve výchozím nastavení řeší souborový systém, a proto jste našli tento rozdíl:

9.2.2. Rozlišování malých a velkých písmen v identifikátoru

V MySQL odpovídají databáze adresářům v datovém adresáři. Každá tabulka v databázi odpovídá alespoň jednomu souboru v adresáři databáze (a možná i více, v závislosti na úložišti). V důsledku toho hraje roli rozlišování malých a velkých písmen základního operačního systému v rozlišení velkých a malých písmen v názvech databází a tabulek. To znamená, že názvy databází a tabulek nerozlišují malá a velká písmena ve Windows a velká a malá písmena ve většině variant Unixu. Jednou významnou výjimkou je Mac OS X, který je založen na Unixu, ale používá výchozí typ systému souborů (HFS+), který nerozlišuje malá a velká písmena. Mac OS X však také podporuje svazky UFS, které rozlišují velká a malá písmena stejně jako na jakémkoli Unixu. Viz oddíl 1.8.4 – „Rozšíření MySQL pro standardní SQL“.

Naštěstí by vám mohla pomoci následující věta:

The lower_case_table_names systémová proměnná také ovlivňuje, jak server zachází s rozlišováním malých a velkých písmen v identifikátorech, jak je popsáno dále v této části.

lower_case_table_names reklama:

Pokud je nastaveno na 0, názvy tabulek jsou uloženy tak, jak je uvedeno, a při porovnání se rozlišují velká a malá písmena. Pokud je nastaveno na 1, názvy tabulek jsou na disku uloženy malými písmeny a při porovnání se nerozlišují velká a malá písmena. Pokud je nastaveno na 2, názvy tabulek jsou uloženy tak, jak jsou uvedeny, ale porovnávají se malými písmeny. Tato možnost platí také pro názvy databází a aliasy tabulek. Další informace naleznete v části 9.2.2 – „Rozlišování malých a velkých písmen v identifikátoru“.

Tuto proměnnou byste neměli nastavovat na 0, pokud používáte MySQL na systému, který má názvy souborů bez rozlišení velkých a malých písmen (jako je Windows nebo Mac OS X). Pokud v takovém systému nastavíte tuto proměnnou na 0 a přistupujete k názvům tabulek MyISAM pomocí různých velkých písmen, může dojít k poškození indexu. V systému Windows je výchozí hodnota 1. V systému Mac OS X je výchozí hodnota 2.

Zdá se tedy, že byste měli nastavit lower_case_table_names1 v konfiguračním souboru MySQL.



  1. Víceřádkové aktualizace PostgreSQL v Node.js

  2. Generujte_série v Postgresu od počátečního a koncového data v tabulce

  3. Proč PL/SQL nerespektuje oprávnění udělená rolemi?

  4. Metody exportu a importu databázových tabulek SQL Server