2017-01-20 7 views
2

私がなぜわからない:エラー - mariaDB

INSERT INTO $db.further_assess (taskid) VALUES ('id') 
      WHERE NOT EXISTS (SELECT * FROM $db.further_assess where taskid='$id') 

は私にこのエラーを与えている:Sql insert if row does not exist

更新:

You have an error in your SQL syntax; check the manual that corresponds to 
your MariaDB server version for the right syntax to use near 'WHERE NOT 
EXISTS (SELECT 1 FROM risk_assessment.further_assess where taskid='222' at line 2 

はこれを次のようました

私は今、正しい、クエリ:

 INSERT INTO $db.further_assess (taskid, reportid) 
     SELECT '$id', '$report_id' 
     FROM (SELECT 1) as dummytable 
     WHERE NOT EXISTS (SELECT * FROM $db.further_assess where taskid='$id'); 
+1

INSERT文は、WHERE句を持っていないを行うには。あなたは何を目標ですか? –

+0

taskidが存在しない場合にのみ挿入します。 –

答えて

1

WHERE節はありません。あなたは条件付きINSERT文を実行したい場合は、ダミーのテーブルにINSERT-SELECTステートメントを使用することができます。

INSERT INTO $db.further_assess (taskid) 
    SELECT 'id' 
    FROM (SELECT 1) as dummytable 
    WHERE NOT EXISTS (SELECT * FROM $db.further_assess where taskid='$id') 
+0

4分で受け入れます。 –

1

はるかに簡単(かつ迅速)

INSERT IGNORE INTO $db.further_assess 
    (taskid) 
    VALUES 
    ('$id')