8

したがって、ターゲット環境は Linux であり、mysql はデフォルトで大文字と小文字を区別します。lower_case_table_names 変数を使用して、Linux 環境で大文字と小文字を区別しないようにできることは承知していますが、そうしないほうがよいでしょう。私たちの開発リグは OSX であり、mysql では大文字と小文字が区別されないため、大文字と小文字の不一致に何度か悩まされました。

MySQL の OSX インストール (問題がある場合は 5.0.83) でテーブル名の大文字と小文字を強制的に区別する方法はありますか?

4

2 に答える 2

-1

ここで行う最善の方法は、競合がないようにテーブル名を修正することです。大文字と小文字だけで区別するのはよくない考えであり、混乱を招きます (ご存じのとおり)。

ただし、作成時にテーブル名を一重引用符で囲んでみてください。これは、SUSE/Linux/MySQL 5.0 で動作し、Windows で実行されているクエリ ブラウザを使用します。

CREATE TABLE  `MySchema`.`test` (
  `COMMENT` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE  `MySchema`.`Test` (
  `COMMENT` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

insert into MySchema.test values ('this is table test' );
insert into MySchema.Test values ('this is table Test' );


select * from MySchema.test;
select * from MySchema.Test;

大文字と小文字を区別しないクライアントが間違った大文字と小文字を使用してテーブルを要求した場合に失敗しますか? MySQL データベースが Linux で実行されている場合、失敗するはずです。

このリンクを確認してください 。「注目すべき例外の 1 つは Mac OS X です。Mac OS X は Unix ベースですが、大文字と小文字を区別しないデフォルトのファイル システム タイプ (HFS+) を使用しています。ただし、Mac OS X は UFS ボリュームもサポートしており、大文字と小文字を区別します。どの Unix でも。」

于 2011-02-08T15:46:39.227 に答える