반응형
삽입할 때 두 값 사이를 뒤섞어 열에 두 값을 DEFAULT로 지정하는 방법
이 세 개의 열이 있는 user_profile이라는 테이블이 있습니다.cover_pic 열에 대한 값을 지정하지 않은 경우 지정된 두 값에서 기본 랜덤 값을 삽입해야 합니다.
예를 들어 어떤 때는 기본값으로 ABC.png을 삽입하고 어떤 때는 XYZ.png을 삽입합니다.
CREATE TABLE user_profile(
profileId int(11) NOT NULL AUTO_INCREMENT,
profile_pic VARCHAR(200) DEFAULT "profile.png",
cover_pic VARCHAR(200) DEFAULT RAND("ABC.png","xyz.png"),
CONSTRAINT pk_profileId PRIMARY KEY(profileId)
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
이것은 다음과 같은 경우에는 불가능합니다.DEFAULT
직접 테이블 위에그러나 를 사용하여 임의의 사진 파일 이름을 열에 설정할 수 있습니다.cover_pic
한다면NULL
:
CREATE TRIGGER insert_cover_pic BEFORE INSERT ON user_profile
FOR EACH ROW
SET NEW.cover_pic = IF(NEW.cover_pic IS NULL, ELT(FLOOR(RAND()*2)+1, 'pic1', 'pic2'), NEW.cover_pic);
사용TRIGGER
를 사용할 수 있습니다.INSERT INTO
열을 지정하지 않고cover_pic
(또는 사용)NULL
종대로cover_pic
):
INSERT INTO user_profile (profile_pic) VALUES ('test.png');
INSERT INTO user_profile (profile_pic, cover_pic) VALUES ('test.png', NULL);
언급URL : https://stackoverflow.com/questions/54723255/how-to-specify-two-value-as-default-on-a-column-by-shuffling-between-two-values
반응형
'programing' 카테고리의 다른 글
개체의 값을 사용하여 키 (0) | 2023.07.25 |
---|---|
행별 LIMIT와 함께 IN을 사용한 MariaDB 쿼리 (0) | 2023.07.25 |
Oracle RAC 및 시퀀스 (0) | 2023.07.25 |
스프링 부트의 유효성 검사 중첩 (0) | 2023.07.25 |
나가는 호스트/포트를 컨테이너에서 다른 포트로 매핑하는 방법 (0) | 2023.07.25 |