重要なポイント
説明
デリイン=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()
);