저는 MySQL을 사용하고 있습니다. 어떻게하면 관련 데이터의 유효성을 입증 할 때 테이블에 INSERT를 실행할 수 있습니까? 고안된 예를 용서하십시오.SQL 조건부 삽입
내 테이블 인 경우 :
> SELECT * FROM colors;
id color owner
-- ------ -----
10 red 2
11 banana 6
12 blue 9
및 fruit.color이 외래 키가 나는 바나나에 대한 정보를 삽입 할
colors.id하는 것입니다
> SELECT * FROM fruit;
id color_id name
-- -------- -------
59 10 cherry
60 12 blueberry
하지만, 색상 소유자가 6 인 경우에만 표시됩니다. 여기에 원시 INSERT가 있습니다.
INSERT INTO
fruit
(color_id, name)
VALUES
(11, 'banana');
마지막 절은 분명히 진짜입니다
INSERT INTO
fruit
(color_id, name)
VALUES
(11, 'banana')
-- ??? I have no idea what to put here ???
ONLY IF (
(SELECT COUNT(*) FROM fruit
INNER JOIN colors ON fruit.color_id = colors.id
AND colors.id = 11
WHERE colors.owners = 6) >= 1
)
,하지만 난 거기에 무엇을 해야할지하지 않습니다
내가 좋아하는 일을하고 싶습니다. 삽입하려고하는 color_id
의 owner
열이 내가 제공 한 값과 같으면 아이디어는 값을 삽입하는 것입니다.
도움 말?
당신은 이런 식으로 뭔가를 시도 할 수 있습니다
이것은 훌륭한 대답입니다. INSERT INTO ... SELECT ... 그런 식으로 사용할 수 있다는 것을 알지 못했습니다. 감사! –