1
ソーステーブルのフィールドを追加してMySQLで問題が発生しました。ここでMySQLの作成/選択でソーステーブルのフィールドが追加される
は(あなたがSQL Fiddle上でそれを見つけることができる例です。、
CREATE TABLE source_table (
id INT UNSIGNED NOT NULL,
foo VARCHAR(3),
INDEX (id)
);
INSERT INTO source_table (id, foo) VALUES (1, "one");
// Create another table and fill it from the source_table
CREATE TABLE example_table (
id INT UNSIGNED NOT NULL,
bar VARCHAR (3),
INDEX (id)
) SELECT
source_table.id,
source_table.foo
FROM source_table
WHERE source_table.id = 1;
最後に私のexample_table
は、私が作成することを要求しないことを、foo
フィールドを持つことになります プラス、bar
は空になりますfoo
が満たされたことにする。
私が見つけた解決策は、各フィールドのエイリアスを使用することですが、それは、rですedundant:
CREATE TABLE example_table (
id INT UNSIGNED NOT NULL,
bar VARCHAR (3),
INDEX (id)
) SELECT
source_table.id AS id,
source_table.foo AS bar
FROM source_table
WHERE source_table.id = 1;
この動作を回避するために、MySQLの設定に何かトリックはありますか?私はそれが驚くべきテーブルを作成するように感じる。
必要に応じてビューを作成できます – senK