Jak vložit do tabulky přes Python, pokud hodnota již v SQLite neexistuje


Nejlepší odpověď

Jak vložit do tabulky přes Python, pokud hodnota není již v SQLite existují?

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

Za předpokladu:

  • máte UNIQUE nebo PRIMARY KEY omezení ve sloupci name a
  • ne chcete, aby duplikáty name vložily chyby,

pak by dotaz SQLite byl:

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

(Přečtěte si stránku SQLite ON CONFLICT clause , kde získáte další informace o řešení konfliktů a pěti různých možnostech řešení. available— INSERT OR IGNORE je jen syntaktický cukr pro INSERT ON CONFLICT IGNORE.)

Pokud nemají ve sloupci name žádná omezení, nejbezpečnějším způsobem je dva samostatné dotazy:

  • SELECT * FROM author WHERE name=?, pak pokud se vrátí s 0 odpovídajícími řádky,
  • INSERT INTO author (name) VALUES (?)

odpověď

samotný příkaz SQL je nesprávný a obecně je třeba se vyhnout *

vložit do autora (jméno)

vybrat? od autora

kde neexistuje (vyberte 42 od autora, kde name =?)

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *