条件を分岐した更新と新規作成

caseを利用した処理

複数テーブルに更新をする場合の処理は、どうやらcase式で書いていける感じです。

 

■caseで書いた場合

CASE
-- 新規登録
WHEN NOT EXISTS

(SELECT company_id FROM company_t WHERE company_id = ?)

THEN
INSERT INTO

company_t (company_id, company_name)

VALUES (?, ?)

 

INSERT INTO school_t (company_id, school_id, school_name) VALUES (?, ?, ?)

 

-- 既存の会社で、新しい塾を登録する場合
WHEN NOT EXISTS

(SELECT school_id FROM school_t

WHERE school_id = ?)

 

THEN
INSERT INTO school_t (company_id, school_id, school_name) VALUES (?, ?, ?)

 

-- 既存の会社で、既存の塾を更新する場合
WHEN EXISTS

(SELECT * FROM school_t

WHERE company_id = ? AND school_id = ?)

 

THEN
UPDATE school_t SET school_name = ?

WHERE company_id = ? AND school_id = ?


-- 既存の会社で、新しい塾を追加する場合
ELSE
INSERT INTO school_t (company_id, school_id, school_name)

VALUES (?, ?, ?)
END;

 

 

■switch

switch ($action) {
case 'new_company':
if (!exists_company($company_id)) {
insert_company($company_id, $company_name);
insert_school($company_id, $school_id, $school_name);
}
break;
case 'new_school':
if (!exists_school($school_id)) {
insert_school($company_id, $school_id, $school_name);
}
break;
case 'update_school':
if (exists_school($company_id, $school_id)) {
update_school($company_id, $school_id, $school_name);
} else {
insert_school($company_id, $school_id, $school_name);
}
break;
default:
break;
}

 

switchで書くと、ネストが深くなってしまい、かなり面倒になるような気がします。

 

 

 

まとめ

 

 

 

他にも学ぼう

■ 設計について■

エンティティの抽出

正規化をしよう

UMLとは何か?

ER図を覚えよう

アンチパターンとは?

GitHubとは

 

■アンチパターン

論理削除

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

1文字エイリアス

全部小文字

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

パスワード

フラグの闇

 

 

 

 

一緒に学習しましょう!!学習仲間を募集しています。

 

 

 

 

 

 

 

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

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

 

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

北海道 [ 北海道 ]

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

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

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

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

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

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

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

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

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

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

 

 

【コンテンツ】

トップへ

更新レスキュー

料金について

制作実績

お客様の声

よくある質問

会社概要

お問い合わせ

【更新レスキュー】

ライトコース

ゴールドコース

プラチナコース

 

【その他】

ニュース

メルマガ登録

特別資料プレゼント

相互リンク募集中

【課題から探す】

ホームページの課題

SEO対策とは

SEO対策がダメな理由

上位表示されない理由

相互リンクとは

順位が落ちてしまう原因

 

 

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