UPDATEの基本

MYSQLのUPDATE

【やりたい事】

データの更新

外部キー制約された複数テーブルをJOINしてデータを更新したい

 

■今回学ぶ事

基本の構文

参照はこちら>>

 

 

■分かった事

親子のテーブルにUPDATE cascade制約が付いている場合、親のカラムを更新すれば

外部キー制約がついた「子テーブルのカラム」は自動で更新されます。

 

 

CONTENTS

1.【更新】UPDATE

2.【複数行】複数行をUPDATE
3.【データの準備】SET句を使う

 

■ポイント

update joinをする場合、SELECT文で一度投げてみる。

UPDATE文を作って投げる。 でOK

 

1.UPDATEとは

■構文

UPDATE テーブル名
SET カラム1 = 値1, カラム2 = 値2, ...
WHERE 条件式;

 

SETで更新するカラムと、値を指定。

 

■事例

UPDATE users
SET age = 30
WHERE id = 1;

 

WHEREをしっかりとつけよう。

 

■複数のカラムを更新

UPDATE users

SET name = 'John', age = 25

WHERE id = 1;

 

UPDATE文を実行する前には必ずバックアップを取るようにしましょう。また、UPDATE文で誤ってデータを更新してしまった場合に備えて、トランザクションを使用することを検討すると良いでしょう。

 

 

2. 複数のテーブル

JOINを使う

複数のテーブルのカラムを更新するには、JOIN句を使用してテーブルを結合する必要があります。(updateの制約がない場合)

今回は3つのテーブルをJOINしてみます。

 

■構文

UPDATE table1

 

JOIN table2

ON table1.id = table2.id

 

JOIN table3

ON table2.id = table3.id

 

SET

table1.column1 = 'new_value1',
table2.column2 = 'new_value2',
table3.column3 = 'new_value3'

 

WHERE table1.id = 'some_id';

 

 

■USINGを使う

UPDATE table1
JOIN table2 USING (id)
JOIN table3 USING (id)

 

SET

table1.column1 = 'new_value1',
table2.column2 = 'new_value2',
table3.column3 = 'new_value3'

 

WHERE

table1.id = 'some_id';

 

■解説

1、まず、テーブルを結合させます。

2.SET句でテーブルに入れる愛艇を

3.where句で更新する行をしていする

 

 

3. 構文について

■update join

$query=$this->db->query("
UPDATE company_t
JOIN company_name_t
USING (company_id)

SET
company_t.company_id = $post_data_company,
company_name_t.company_name ='$post_data_company_name'


WHERE
company_name_t.company_id= $post_data_company
");

 

1.結合条件を上に書く

2.SET句でデータを入れる

3.whereで条件をしてい

 

■他には

$this->db->where('company_id', $post_data_company);
$this->db->update('company_name_t', $input_data_company_name_t);

 

■CASCADE制約が付いている場合

親テーブルを更新するだけで、子テーブルに紐づいているカラムも更新されます。

これがcascadeの良い部分です。

 

更新についての考察

会社名を変える場合、親の会社名テーブルをupdateすれば、カスケード制約された子テーブルの必要な部分は、制約によって自動で更新されます。

 

 

まとめ

WHEREがいらない。

書き方に種類がある。

 

updateのcascde制約がついている場合、親のカラムを更新すれば、子も更新ができる。(変更をする場合など)

業務内容に合わせて、更新をする事。

 

 

無理せず、楽しく、生産的に!!ご相談は下記まで

 

 

 

この記事を読んだ人は、こんな記事も読んでいます

■ 設計について■

エンティティの抽出

UMLとは何か?

ER図を覚えよう

アンチパターンとは?

GitHubとは

 

■アンチパターン

論理削除

ジェイウォーク(交差テーブルを作らない)

1文字エイリアス

全部小文字

複数列属性(マルチカラムアトリビュート)

パスワード

フラグの闇

 

■アップロード

サーバーにアップロード

 

 

 

 

 

 

【SEO対策・web広告・webコンサルティングのプラスワーク対応エリアについて】

プラスワークでは、東京、神奈川、千葉、埼玉を中心に全国でwebコンサルティング、SEO対策、ホームページの更新、ホームページのリニューアル運営代行をしております。売上アップをお考えならお気軽にご相談ください。

 

【SEO対策・web広告・webコンサルティングのプラスワーク 対応地域】

北海道 [ 北海道 ]

東北  [ 青森 | 岩手 | 山形 | 福島 | 秋田 | 宮城 ]

関東  [ 東京 | 埼玉 | 千葉 | 茨城 | 栃木 | 群馬 | 神奈川 ]

甲信越 [ 山梨 | 長野 | 新潟 ]

北陸  [ 石川 | 福井 | 富山 ]

東海  [ 愛知 | 静岡 | 岐阜 | 三重 ]

近畿  [ 大阪 | 兵庫 | 京都 | 滋賀 | 奈良 | 和歌山 ]

中国  [ 島根 | 山口 |鳥取 | 広島 | 岡山 ]

四国  [ 徳島 | 香川 | 愛媛 | 高知 ]

九州  [ 福岡 | 佐賀 | 長崎 | 熊本 | 大分 | 宮崎 | 鹿児島 ]

プラスワークでは全国でSEO対策、ホームページ更新、制作をしております。中小企業専門SEO対策・ホームページ更新制作会社、ダイレクト レスポンス マーケティング、ウェブ マーケティング、マーケティング 分析、口コミのよいSEO対策会社をお探しならプラスワークにお任せくださいませ。

 

 

【コンテンツ】

トップへ

更新レスキュー

料金について

制作実績

お客様の声

よくある質問

会社概要

お問い合わせ

【更新レスキュー】

ライトコース

ゴールドコース

プラチナコース

 

【その他】

ニュース

メルマガ登録

特別資料プレゼント

相互リンク募集中

【課題から探す】

ホームページの課題

SEO対策とは

SEO対策がダメな理由

上位表示されない理由

相互リンクとは

順位が落ちてしまう原因

 

 

フェイスブック  ツイッター