1. commit & rollback
- DCL : Data Control Language
- commit : 작업결과를 물리적 디스크에 저장. manipulation 작업이 정상적으로 완료
- rollback : 원래의 데이터 상태로 복구
DESC phonebook;
SELECT * FROM phonebook ;
DROP TABLE IF EXISTS phonebook;
CREATE TABLE phonebook(
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(80) NOT NULL,
phonenum varchar(20) DEFAULT '010-0000-0000',
email varchar(100),
regdate datetime DEFAULT now()
);
INSERT INTO phonebook (name, phonenum, email)
VALUES
('아이언맨', '111-111-1111', 'ironman@mail.com')
, ('캡틴아메리카', '222-222-2222', 'captain@mail.com')
, ('토르', '3333-3333-333', 'thor@gmail.com')
;
SELECT @@autocommit;
SET @@autocommit = 0;
SELECT * FROM phonebook;
DELETE FROM phonebook WHERE id > 20;
ROLLBACK;
INSERT INTO phonebook (name, phonenum, email)
VALUES ('헐크', '4444-4444', 'hulk@incredible.com');
SELECT * FROM phonebook;
SAVEPOINT A;
UPDATE phonebook SET name = '블랙위도우' WHERE name = '캡틴아메리카';
SAVEPOINT B;
SELECT * FROM phonebook;
DELETE FROM phonebook WHERE regdate < '2022-03-19';
SELECT * FROM phonebook;
ROLLBACK TO SAVEPOINT B;
ROLLBACK TO SAVEPOINT A;
SELECT * FROM phonebook;
COMMIT;
SET @@autocommit = 1;


