2017-10-05 8 views
1

mysqlのdbにデータが存在しない場合は、データを挿入します。mysqlにはどこに存在しないの?

私は次のクエリを使用:

INSERT INTO market 
VALUES('DZ','PM','23') 
WHERE NOT EXISTS (Select name from market where name ='DZ') 

をそれはうまくいきませんでした。

修正方法を教えてください。

答えて

3

このための一般的な解決策は以下のとおりです。

INSERT INTO market 
SELECT * FROM (SELECT 'DZ','PM','23') x 
WHERE NOT EXISTS (select name from market where name = 'DZ') 

あなたがサブクエリを必要とする理由は、あなたがFROMなしWHEREを持つことができないということです。


Oracleでは、あなたはDUALを使用してサブクエリせずにそれを行うことができます。

INSERT INTO market 
SELECT 'DZ','PM','23' 
FROM DUAL -- Simpler in Oracle 
WHERE NOT EXISTS (select name from market where name = 'DZ') 
関連する問題