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