重要なポイント

更新?それとも削除してから登録?

説明

デリイン=DELETE-INSERT(デリートインサート)の略です。

update文を使用して、レコードを更新することもできますが、状況によっては、delete文とinsert文を併用した方が作業が楽な場合があります。
業務で使用するテクニックだと思い覚えておいてください。

構文

<更新したいデータ>

student_id 1000
student_name 井田 テスト→井田 太郎
student_name_kana イダ テスト→イダ タロウ
student_number 21000000→21000001
department_id 1→2
gender 0
age 20→40
test_score 100→90
delete_at 0
insert_at 更新不要:now()
update_at 更新:now()

 

update文で更新

update students_mst set
 student_name = '井田 太郎'
,student_name_kana = 'イダ タロウ'
,student_number = '21000001'
,department_id = 2
,age = 40
,test_score = 90
,update_at = now()
 where student_id = 1000;

デリートインサートで登録

<手順>

先に削除(delete)してから、登録作業(insert)を行います。

  • 削除するレコードは、登録する対象のレコードを指定するためにプライマリキーを利用します。(今回は、student_idが〈1000〉です)
  • 登録は、通常通りにINSERT文を作成します。(新規登録となるため登録日時が更新日時と同じになります)
delete from students_mst
 where student_id = 1000;
insert into students_mst(
student_id
,student_name
,student_name_kana
,student_number
,department_id
,gender
,age
,test_score
,delete_at
,insert_at
,update_at
) values (
1000
,'井田 太郎'
,'イダ タロウ'
,'21000001'
,2
,'0'
,40
,90
,'0'
,now()
,now()
);