Kuinka lisätä taulukkoon Pythonin kautta, jos arvoa ei vielä ole SQLite-sivustossa


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 tai PRIMARY KEY rajoitus name -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 =?)

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *