タグ付けされた質問 「ctas」

2
CREATE TABLE ASとSELECT INTO
PostgreSQLのサポートCREATE TABLE ASとSELECT INTOするとき、私は両方使うのですか? CREATE TABLE AS -クエリの結果から新しいテーブルを定義する CREATE TABLE ASテーブルを作成し、SELECTコマンドで計算されたデータでテーブルを埋めます。表の列には、の出力列に関連付けられた名前とデータ型SELECTがあります(ただし、新しい列名の明示的なリストを指定することで列名をオーバーライドできます)。 CREATE TABLE ASビューの作成と似ていますが、実際にはまったく異なります。新しいテーブルを作成し、クエリを一度だけ評価して、新しいテーブルに最初に入力します。新しいテーブルは、クエリのソーステーブルに対するその後の変更を追跡しません。対照的に、ビューSELECTは、クエリが実行されるたびに定義ステートメントを再評価します。 その後。 SELECT INTO -クエリの結果から新しいテーブルを定義する SELECT INTO新しいテーブルを作成し、クエリによって計算されたデータをそのテーブルに入力します。通常ののように、データはクライアントに返されませんSELECT。新しいテーブルの列には、の出力列に関連付けられた名前とデータ型がありSELECTます。
16 postgresql  ctas 

1
CREATE TABLE…AS SELECTの主キーの自動インクリメント
を介して複雑な選択クエリを使用してテーブルを作成しましたCREATE TABLE ... AS SELECT...。このクエリに自動インクリメントの主キーを追加するにはどうすればよいですか? 例えば: create table `user_mv` select `user`.`firstname` as `firstname`, `user`.`lastname` as `lastname`, `user`.`lang` as `lang`, `user`.`name` as `user_name`, `group`.`name` as `group_name` from `user` inner join `user_groups` on (`user`.`user_id`=`user_groups`.`user_id`) left join `group` on (`group`.`group_id`=`user_groups`.`group_id`) where `user`.`lang`=`group`.`lang` このクエリは、含まれているテーブルを作成しfirstname、lastname、lang、username、group_nameコラム。id自動インクリメントの主キーである列も必要です。 このクエリを変更してこれを行う方法はありますか?このクエリを実行した後にテーブルを変更することでそれができることはわかっていますが、create tableステートメントで直接これを行う方法がある場合は、その方法を知りたいです。

2
CREATE TABLE AS SELECT中にMySQLがロックする
次の(ダミー)クエリを実行しています CREATE TABLE large_temp_table AS SELECT a.*, b.*, c.* FROM a LEFT JOIN b ON a.foo = b.foo LEFT JOIN c ON a.bar = c.bar クエリの実行に10分かかるとします。テーブルa、b、cの実行中に値を更新しようとすると、上記のクエリが最初に完了するまで待機します。このロックを回避したい(データの整合性は重要ではない)。どうすればそれを達成できますか? 使用:MySQL 5.1.41およびInnoDBテーブル ps SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 動作に変化はありません 更新 クエリが実行されている間、SHOW ENGINE INNODB STATUSの出力は次のようになります(ここでは目的のために非常に遅いクエリを作成しています)。 ===================================== 120323 15:26:29 INNODB MONITOR OUTPUT ===================================== Per second …
10 mysql  locking  ctas 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.