2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

パーソンリンクAdvent Calendar 2022

Day 11

【MySQL】一時テーブル作成から更新までの流れ

Last updated at Posted at 2022-12-10

MySQLでツラツラ学んだことを書いていきます(^-^)

MySQLで一時テーブルを作成

一時テーブルをCREATE TEMPORARY TABLEで作成します。
TEMPORARY テーブルは現在のセッション内でのみ表示され、セッションがクローズされると自動的に削除されます。2 つの異なるセッションが同じ一時テーブル名を使用することができ、互いに同じ名前の既存の TEMPORARY 以外のテーブルと競合することはありません。
ストレージエンジンはInnoDBが選択されます。

CREATE TEMPORARY TABLE contract_temp (
id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
contract_at TIMESTAMP,
PRIMARY KEY (id)
)ENGINE=InnoDB
;

show create table contract_temp;で作成した一時テーブルの中身を確認できます。

一時テーブルに作成したCSV or TSVファイルを投入する

FIELDS TERMINATED BY '\t'は区切り文字を設定するので、今回はタブ区切りのTSVファイルを読み込みます。

LOAD DATA LOCAL INFILE '/Users/○○○○/○○○○/contract_test.tsv'
INTO TABLE `contract_temp`
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"'
IGNORE 1 LINES
(`id`, `contract_at`, `digital_log`);

1つのテーブルを別のテーブルの値でUPDATEするやり方

先程の一時テーブルで作成した値(今回は前もって準備していたTSVファイルを投入しておきます)を既存のテーブルに更新します。今回はuser_profileテーブルの3つのカラムをcontract_temp一時テーブルのカラムで更新します。

UPDATE user_profile,contract_temp
SET user_profile.contract_at = contract_temp.contract_at,
user_profile.digital_log = contract_temp.digital_log
WHERE user_profile.id = contract_temp.id;
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?