次のテストケースで問題が説明されています。ビューのクエリ時に列名が変更される
CREATE TABLE the_table (id INT, Title CHAR(10));
CREATE VIEW the_view AS SELECT * FROM the_table;
INSERT INTO the_table VALUES (1, 'Hello');
今大文字
で 'タイトル' 私がしようとした旨の通知:
SELECT id, title FROM the_table;
Result:
+------+-------+
| id | title |
+------+-------+
| 1 | Hello |
+------+-------+
は( 'タイトル' がクエリと結果列の両方に小文字れている様子がわかり)
でも、同じことをビューで行うと、
SELECT id, title FROM the_view;
Result:
+------+-------+
| id | Title |
+------+-------+
| 1 | Hello |
+------+-------+
これは同じselect句ですが、今回は 'Title'の列名が大文字になりました!
私はまったく同じスキーマのビューでコードを再利用しようとしていますが、これはそれを混乱させます。
これは標準的なMySQLの動作であるかどうかにかかわらず、私は実際に参照を見つけることができませんが、その周りに道がありますか?
これは、MySQLがどのように動作するかを示す回答があります。実際には、Standard SQLがどのようなSQL実装でも動作する必要があるので、MySQLの奇抜ではありません。大文字と小文字を区別する必要があると確信している場合は、(a)後継者があなたの決定を嫌うことを期待し、(b)名前を二重引用符(SQL標準)またはバッククォート(MySQL非標準表記 - MS SQL Serverの角括弧表記)を使用するたびに表示されます。 –