昨日、私はこの質問をしました。問題は、値が存在しない場合、テーブルに行を挿入する必要があることです。フェ
If('x' NOT EXIXTS in (select campoX from table) then
insert into table (...) values (...) etc.
どのようにできるのか?インターネット上では答えが見つかりません:(
昨日、私はこの質問をしました。問題は、値が存在しない場合、テーブルに行を挿入する必要があることです。フェ
If('x' NOT EXIXTS in (select campoX from table) then
insert into table (...) values (...) etc.
どのようにできるのか?インターネット上では答えが見つかりません:(
デュアル テーブルを使用する:
INSERT INTO campoX (col1, col2, col3)
SELECT value1, value2, value3
FROM dual
WHERE NOT EXISTS(SELECT *
FROM campoX
WHERE col1=value1);
テーブルの名前はtblだと思います。
INSERT INTO tbl (campoX )
SELECT 'X' FROM DUAL
WHERE NOT EXISTS(
SELECT campoX from tbl
WHERE campoX ='X'
);
DUAL
これは純粋に、すべての SELECT ステートメントに FROM 句と、場合によっては他の句を含める必要があるユーザーの便宜のためです。MySQL は句を無視する場合があります。テーブルが参照されていない場合、MySQL は FROM DUAL を必要としません。
他の人が言及したように、INSERT IGNORE
campoX が一意または主キー フィールドである場合は、ここでステートメントを使用できます。
どうですか:
CASE
WHEN 'X' NOT EXIST IN (SELECT campoX FROM yourTable) THEN
INSERT INTO yourTable (...) VALUES (...)
END CASE
プログラミング言語を発明することは、問題を説明する最も適切な方法ではありません。
そのデータがまだデータベースに存在しない行のみを追加したいということですか? その場合は、テーブルに主キーまたは一意のキーが定義されていることを確認し、とにかく INSERT を実行しますが、重複キー エラーは無視してください。実際、MySQL では、'INSERT IGNORE....' を使用することで、重複キーのエラー生成を完全に抑制することができます。