CREATE TABLE prod.vital (
user_id int not null,
vital_id int primary key,
date timestamp not null,
weight int not null
);
CREATE TABLE prod.alert (
alert_id int primary key,
vital_id int,
alert_type varchar(32),
date timestamp,
user_id int
);
INSERT INTO prod.vital(user_id, vital_id, date, weight) VALUES(100, 1, '2020-01-01', 75);
INSERT INTO prod.vital(user_id, vital_id, date, weight) VALUES(100, 3, '2020-01-02', 78);
INSERT INTO prod.vital(user_id, vital_id, date, weight) VALUES(101, 2, '2020-01-01', 90);
INSERT INTO prod.vital(user_id, vital_id, date, weight) VALUES(101, 4, '2020-01-02', 95);
INSERT INTO prod.vital(user_id, vital_id, date, weight) VALUES(999, 5, '2020-01-02', -1);
INSERT INTO prod.vital(user_id, vital_id, date, weight) VALUES(999, 5, '2020-01-02', 10);
빨간색 형광펜 : vital_id가 primary key라서 primary key uniqueness constraint에 의해 같은 값은 들어가지 않음
INSERT INTO prod.alert VALUES(1, 4, 'WeightIncrease', '2020-01-02', 101);
INSERT INTO prod.alert VALUES(2, NULL, 'MissingVital', '2020-01-04', 100);
INSERT INTO prod.alert VALUES(3, NULL, 'MissingVital', '2020-01-04', 101);
DELETE FROM prod.vital WHERE weight <= 0; -> 조건에 해당하는 부분만 삭제
-> 실제로 실행하면 에러(primary key가 아니라 다수의 데이터를 사용할 수 있는 조건은 mysql에서 막음)
-> 해결방법 : DELETE FROM prod.vital WHERE vital_id=5; 로 바꿔야함
DELETE FROM prod.vital; -> 모든 레코드는 날림(데이블은 있음)
-> 이것도 막힘(safe update 모드라서)
-> 해결방법 : preference ->
SELECT * FROM prod.vital; -> 레코드가 없다고 리턴(테이블이 없으면 테이블이 없다고 리턴)
DROP TABLE IF EXISTS prod.viral;
SELECT * FROM prod.vital WHERE vital_id = 4;
UPDATE prod.vital
SET weight = 92
WHERE vital_id = 4;
SELECT * FROM prod.vital WHERE vital_id = 4;