SQLiteに値がまだ存在しない場合にPythonを介してテーブルに挿入する方法


ベストアンサー

値が存在しない場合にPythonを介してテーブルに挿入する方法SQLiteにすでに存在しますか?

cursor.execute("INSERT INTO author (name) VALUES(?) SELECT * FROM author WHERE NOT EXISTS(SELECT * FROM author)", (aname, ))

仮定:

  • iv id =がありますname列の “848422fd52″>

またはPRIMARY KEY制約、および

  • エラーをスローするために重複するname挿入が必要な場合
  • SQLiteクエリは次のようになります:

    INSERT OR IGNORE INTO author (name) VALUES (?)

    (SQLite ON CONFLICT句のページを読んで、競合の解決と5つの異なる解決策の選択肢について詳しく理解してください。利用可能— INSERT OR IGNOREINSERT ON CONFLICT IGNOREの単なる構文上の砂糖です。)

    name列に制約がない場合、これを行う最も安全な方法は 2つの個別のクエリ:

    • SELECT * FROM author WHERE name=?、一致する行が0で返される場合、
    • INSERT INTO author (name) VALUES (?)

    回答

    SQLステートメント自体が間違っているため、*一般的には避ける必要があります

    作成者(名前)に挿入

    選択しますか?著者から

    存在しない場合(名前=?の著者から42を選択)

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です