2017-12-09 11 views
0

두 개의 테이블이 있습니다 : 두 번째 테이블에 첫 번째 테이블의 기본 키를 참조하는 외래 키가 있습니다. 그리고 두 번째 테이블에 데이터를 삽입 할 때 첫 번째 테이블에 iputed 키가있는 행이 있는지 먼저 확인하려고합니다. T-SQL에서 그 결과는 다음과 같습니다삽입 할 경우 삽입

create procedure insert_order_products 
@ order_id int 
@ product_id int 
AS 
IF EXISTS (SELECT * FROM order where order.id=order_id) 
IF EXISTS (SELECT * FROM product where product.id=product_id) 
INSERT INTO order_products values(some values) 

어떻게 MySQL의에서 IF EXISTS을 확인?

답변

1

난 당신이 내가 그것을

INSERT order_products(col1,col2,...,colN) 
SELECT @val1,@val2,...,@valN 
FROM DUAL 
WHERE EXISTS(SELECT * FROM order WHERE [email protected]_id) 
    AND EXISTS(SELECT * FROM product WHERE [email protected]_id) 

을 다음 아니면

을 사용할 수 있습니다처럼 될 거라고 생각 MySQL의에서

INSERT order_products(col1,col2,...,colN) 
SELECT @val1,@val2,...,@valN 
WHERE EXISTS(SELECT * FROM order WHERE [email protected]_id) 
    AND EXISTS(SELECT * FROM product WHERE [email protected]_id) 

(SELECTWHEREINSERT) 다음과 같은 쿼리를 사용하려고 할 수 있다고 생각

INSERT order_products(col1,col2,...,colN) 
SELECT @val1,@val2,...,@valN 
FROM (SELECT * FROM order WHERE [email protected]_id) o 
CROSS JOIN (SELECT * FROM product WHERE [email protected]_id) p 

마지막 변형이 더 좋습니다.