sql >> Databasteknik >  >> RDS >> Mysql

Hur ändrar man MySQL-tabellnamn i Linux-servern för att vara skiftlägesokänsliga?

MySQL:s skiftlägeskänslighet hanteras som standard av filsystemet, vilket är anledningen till att du hittade denna skillnad:

9.2.2. Identifierare skiftlägeskänslighet

I MySQL motsvarar databaser kataloger i datakatalogen. Varje tabell i en databas motsvarar minst en fil i databaskatalogen (och möjligen fler, beroende på lagringsmotorn). Följaktligen spelar skiftlägeskänsligheten i det underliggande operativsystemet en roll i skiftlägeskänsligheten för databas- och tabellnamn. Detta innebär att databas- och tabellnamn inte är skiftlägeskänsliga i Windows och skiftlägeskänsliga i de flesta varianter av Unix. Ett anmärkningsvärt undantag är Mac OS X, som är Unix-baserat men använder en standardfilsystemstyp (HFS+) som inte är skiftlägeskänslig. Men Mac OS X stöder också UFS-volymer, som är skiftlägeskänsliga precis som på alla Unix. Se avsnitt 1.8.4, "MySQL-tillägg till Standard SQL".

Lyckligtvis kan nästa mening hjälpa dig:

små_case_table_names systemvariabeln påverkar också hur servern hanterar skiftlägeskänslighet för identifierare, som beskrivs längre fram i detta avsnitt.

lower_case_table_names blurb:

Om inställt på 0, lagras tabellnamn som specificerat och jämförelser är skiftlägeskänsliga. Om inställt på 1, lagras tabellnamn med gemener på disken och jämförelser är inte skiftlägeskänsliga. Om inställt på 2, lagras tabellnamn som givna men jämförs med gemener. Det här alternativet gäller även för databasnamn och tabellalias. För ytterligare information, se avsnitt 9.2.2, "Identifierare skiftlägeskänslighet".

Du bör inte ställa in denna variabel till 0 om du kör MySQL på ett system som har skiftlägesokänsliga filnamn (som Windows eller Mac OS X). Om du ställer in denna variabel till 0 på ett sådant system och får åtkomst till MyISAM-tabellnamn med olika bokstäver, kan indexkorruption uppstå. I Windows är standardvärdet 1. På Mac OS X är standardvärdet 2.

Så det verkar som att du bör ställa in lower_case_table_names till 1 i MySQL-konfigurationsfilen.



  1. SQL Server AlwaysOn Tillgänglighetsgrupper:Installation och konfiguration. Del 2

  2. Hur kan jag se SQL-exekveringsplanen i Oracle?

  3. 4 funktioner för att formatera ett tal till 2 decimaler i SQL Server

  4. Hur man installerar MariaDB 10 på Debian och Ubuntu