Wpis z mikrobloga

Cześć Mirki, próbuję napisać w #python #sqlite zapytanie które będzie mi wrzucac odpowednie wartości w odpowiednie miejsce:

c.execute("UPDATE MOJATABELA SET KOLUMNA1 = ? WHERE WIERSZ= ? ",
(wartoscWstawiana1, wiersz1))
dbConnection.commit()

no i git to działa
Problem w tym ze mam kilkanascie kolumn i zaleznie od wartosci chcę aby była ona wpisywana w innej kolumnie

Próbowałem więc coś takiego:
c.execute("UPDATE MOJATABELA SET ? = ? WHERE WIERSZ= ? ",
(jakasKolumna, wartoscWstawiana1, wiersz1))
dbConnection.commit()

no i to niestety nie działa (dostaję komunikat: "sqlite3.OperationalError: near "?": syntax error".
Nie wiem czy to kwestia moich kiepskich umiejętności czy dwutygniowej izolacji (zapewne jedno i drugie ( ͡° ͜ʖ ͡°) ) ale może mi ktoś pomóc?
  • 5
@lionbest: nie jestem zawodowcem ( ͡° ͜ʖ ͡°) Czyli rozumiem że jedynie wyjście to składać zapytanie ze stringów i wtedy moge decydować o nazwie kolumny albo załatwić to piętnastoma ifami?
@Kohrd: Cała idea bazy danych polega na tym, że operujesz na wierszach, a nie na pojedynczych polach.
Ustawianie jednego pola poprzez UPDATE trwa tyle, co UPDATE wszystkich pól, jednak dla wielu pól, będzie to nieporównywalnie dłużej niż zrobienie jednego UPDATE dla trzech pól (indeksu, nazwy oraz wartości).

Jeżeli to tylko jakiś skrycik to nie przejmuj się, że łączysz ciągi znaków w zapytanie. Możesz napisać zapytanie, które zrobi ci nową tabelę ze