重要なポイント

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

説明

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

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

構文

<更新したいデータ>

student_no 1000
student_kj 井田 テスト→井田 太郎
student_kn イダ テスト→イダ タロウ
student_cd 21000000→21000001
gakka_no 1→2
seibetu_ku 0
age_nb 20→40
test_su 100→90
delete_ku 0
insert_at 更新不要:now()
update_at 更新:now()

 

update文で更新

update student_mst set
 student_kj = '井田 太郎'
,student_kn = 'イダ タロウ'
,student_cd = '21000001'
,gakka_no = 2
,age_nb = 40
,test_su = 90
,update_at = now()
 where student_no = 1000;

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

<手順>

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

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