1. ホーム
  2. sql

[解決済み] SQLでテーブルのすべての値を別のテーブルに挿入する

2022-06-04 07:35:17

質問

私は、あるテーブルのすべての値を別のテーブルに挿入しようとしています。しかし、挿入文は値を受け入れますが、私はそれがinitial_Tableからselect *を受け入れるようにしたいと思います。これは可能ですか?

どのように解決するには?

insertステートメントには、実際にそのための構文があります。しかし、"*" を選択するのではなく、列名を指定すると、より簡単になります。

INSERT INTO new_table (Foo, Bar, Fizz, Buzz)
SELECT Foo, Bar, Fizz, Buzz
FROM initial_table
-- optionally WHERE ...

なぜかこの投稿にはダウンボーティングがいくつかついているので、これをはっきりさせた方がいいと思います。

INSERT INTO ... SELECT FROM 構文は、挿入するテーブル (上記の例では "new_table") がすでに存在する場合のものです。他の人が言ったように、SELECT ... INTO 構文は、コマンドの一部として新しいテーブルを作成したいときのためのものです。

新しいテーブルがコマンドの一部として作成される必要があるかどうかは指定されていませんので、INSERT INTO ... SELECT FROM は、目的のテーブルがすでに存在する場合は問題ないはずです。