지인이 mysql 문의를 해왔는데..
보안으로 구글링이 안되 문의 드립니다.
제가 테스트 할수 있는 환경도 안됩니다. ㅠㅠ
mysql에서 테이블 생성시 default에 연산식을 넣을 수 있나요?
예를 들어 아래와 같습니다.
create table t_test (
a int ,
b int,
c int default (a+b),
d int default (a * 100),
e int as (a + b) /* 리퍼런스 보니 as 뒤에도 뭔가를 할수도 있는것 같은데..^^ */
);
insert into t_test(a, b) values (10, 20);
지인분이 안된다고 해서
고수님 가르침 부탁드립니다.
MYSQL에서는 어떤지 정확히 모르겠지만 DEFAULT에 열명을 지정하실 수 없을텐데요.
정 해당 기능이 필요하시면 BEFORE 트리거 만드시고 C, D, E 값이 NULL일 경우 해당 값으로 치환하게 하셔야 할 것 같습니다.
CREATE OR REPLACE TRIGGER T_TEST_TG BEFORE INSERT OR UPDATE ON T_TEST REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE BEGIN IF :NEW.C IS NULL THEN :NEW.C := NVL(:NEW.A,0) + NVL(:NEW.B,0); END IF; IF :NEW.D IS NULL THEN :NEW.D := NVL(:NEW.A,0) * 100; END IF; IF :NEW.E IS NULL THEN :NEW.E := NVL(:NEW.A,0) + NVL(:NEW.B,0); END IF; END T_TEST_TG;