새 행 삽입의 경우 INSERT INTO 명령과 함께 조건부 삽입, 즉 WHERE 절을 사용할 수 있습니다. 다음과 같은 방법으로 수행할 수 있습니다 -
더미 테이블의 도움으로
이 경우 더미 테이블의 값을 일부 조건과 함께 삽입합니다. 구문은 다음과 같을 수 있습니다. -
INSERT INTO table_name(column1,column2,column3,…) Select value1,value2,value3,… From dual WHERE [conditional predicate];
예시
mysql> Create table testing(id int, item_name varchar(10)); Query OK, 0 rows affected (0.15 sec) mysql> Insert into testing (id,item_name)Select 1,'Book' From Dual Where 1=1; Query OK, 1 row affected (0.11 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> Select * from testing; +------+-----------+ | id | item_name | +------+-----------+ | 1 | Book | +------+-----------+ 1 row in set (0.00 sec)
위의 예에서 우리는 'testing' 테이블을 생성했고 거기에 행을 삽입하기 위해 조건이 있는 이중 테이블을 사용했습니다. 조건이 참이면 MySQL은 테이블에 행을 삽입합니다. 그렇지 않으면 그렇지 않습니다.
동일한 구조 테이블의 도움으로
구조가 다른 테이블과 동일한 테이블에 삽입하려는 경우 다음 예에서 조건부 삽입, 즉 INSERT INTO 문과 함께 WHERE 절을 사용하는 방법을 보여주었습니다.
mysql> Insert into dummy1(id,name)select id, name from dummy Where id =1; Query OK, 1 row affected (0.06 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> select * from dummy; +------+--------+ | id | Name | +------+--------+ | 1 | Gaurav | | 2 | Aarav | +------+--------+ 2 rows in set (0.00 sec) mysql> select * from dummy1; +------+--------+ | id | Name | +------+--------+ | 1 | Gaurav | +------+--------+ 1 row in set (0.00 sec)
여기 위의 예에서는 'id =1'인 행만 삽입하는 조건으로 'dummy' 테이블과 동일한 구조를 갖는 'dummy1' 테이블에 값을 삽입했습니다.