私はMySQLを使用しています。どのようにして関連するデータの検証時に述語化されたテーブルにINSERTを実行できますか?考案された例を許してください。SQL条件付きINSERT
私のテーブルがある場合:
> 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 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
)
ことが、私はそこに何をするか分からない:
私のような何かをしたいと思います。私が挿入しようとしているのowner
列が私が提供している値と等しい場合、そのアイデアは値を挿入するだけです。
ヘルプ?
あなたはこのような何かを試すことができ
これは優れた回答です。私はINSERT INTO ... SELECT ...がそのように使用できることを認識していませんでした。ありがとう! –