Paras vastaus
Kuinka lisätään taulukkoon Pythonin kautta, jos arvo ei ole Onko SQLite jo olemassa?
cursor.execute("INSERT INTO author (name) VALUES(?) SELECT * FROM author WHERE NOT EXISTS(SELECT * FROM author)", (aname, ))
Olettaen:
- sinulla on
UNIQUE
taiPRIMARY KEY
rajoitusname
-sarakkeessa ja - et haluavat kopiot
name
lisäävät virheitä,
silloin SQLite-kysely olisi:
INSERT OR IGNORE INTO author (name) VALUES (?)
(Lue SQLite ON CONFLICT -lauseke -sivu saadaksesi lisätietoja konfliktinratkaisusta ja viidestä eri ratkaisuvaihtoehdosta käytettävissä – INSERT OR IGNORE
on vain syntaktinen sokeri kohteelle INSERT ON CONFLICT IGNORE
.)
Jos ei ole mitään rajoituksia sarakkeessa name
, turvallisin tapa tehdä tämä on kaksi erillistä kyselyä:
-
SELECT * FROM author WHERE name=?
, sitten jos siinä on 0 vastaavaa riviä, -
INSERT INTO author (name) VALUES (?)
vastaus
itse SQL-käsky on väärä, ja * yleensä tulisi välttää
lisää kirjoittajaan (nimi)
valitse? kirjoittajalta
missä ei ole olemassa (valitse 42 tekijästä, jossa nimi =?)