Gegevens aanpassen met sqlite3

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • MdO82
  • Registratie: Maart 2007
  • Laatst online: 28-09 15:52
Ik heb een raspberry met domoticz draaien.
Zoals bij veel gebruikers is door de schakeling van winter- naar zomertijd een fout geslopen in de database.
Nu ben ik zover dat ik erachter ben waar de fout zit, maar ik heb geen idee hoe ik het beste de data kan wijzigen.

De boel draait dus onder domoticz en via sqlite3 heb ik de volgende informatie:
sqlite> SELECT * FROM meter_Calendar;
2|1951|478741|2016-03-26
2|1664|480405|2016-03-26

sqlite> SELECT * FROM MutliMeter_Calendar;
5|4|100|0|0|0|0|0|0|0|0|2016-03-26
1|7139|4290|3915|1606|0|0|626194|71085|602529|217450|2016-03-26
5|50|100|0|0|0|0|0|0|0|0|2016-03-26
1|4785|4707|3097|1876|0|0|630989|75792|602529|217450|2016-03-26


De regels met 2|1664 en waar 5|50 en 1|4785 staan moeten gewijzigd worden van 26 maart naar 27 maart.
Iemand een idee hoe ik dat voor elkaar zou kunnen krijgen ?

De enige manier om dit aan te kunnen passen is via de commandline.

2250 WP Zuid PVoutput

Beste antwoord (via MdO82 op 29-03-2016 15:35)


  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Als het te moeilijk is om het commandline te doen; er zijn zat management GUIs voor SQLLite.

Moet je alleen de database files even kopieeren naar je desktop en dan met bijvoorbeeld http://sqliteman.yarpen.cz/ of https://www.jetbrains.com/datagrip/ openen.

Een beetje kennis kan natuurlijk nooit kwaad; zie hierboven. Zowel de assignment als de WHERE moet een geldige kolomnaam bevatten. Je voorbeeld UPDATE statement klopt dan ook niet:
code:
1
UPDATE meter_Calendar SET 27-03-2016 WHERE Date=26-03-2016

Moet zijn (mits de kolom "Date" bestaat, en afhankelijk van het datatype wat erin moet worden opgeslagen):
code:
1
UPDATE meter_Calendar SET Date='27-03-2016' WHERE Date='26-03-2016'

We are pentium of borg. Division is futile. You will be approximated.

Alle reacties


Acties:
  • 0 Henk 'm!

  • MdO82
  • Registratie: Maart 2007
  • Laatst online: 28-09 15:52
Ik heb de link van je doorgenomen, maar weer even niet hoe ik de commando's het beste kan gebruiken.
Goed ik weet dat ik de update query nodig heb.
Het probleem waar ik dan tegen aanloop is dat ik geen WHERE ID heb :)

Wat kan ik het beste dan doen ?

Als ik bijvoorbeeld zal doen:"
UPDATE meter_Calendar SET 27-03-2016 WHERE Date=26-03-2016

Dan zou dit betekenen als ik het goed heb dat op alle plekken waar ik 26-03-2016 heb staan dit logischerwijs 27-03-2016 wordt.

2250 WP Zuid PVoutput


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 30-09 22:30

Hero of Time

Moderator LNX

There is only one Legend

Je kan toch een 'describe' oid doen op de tabel om te zien wat de headers zijn van de kolommen? Dan heb je een ID die je kan gebruiken.

Commandline FTW | Tweakt met mate


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Als het te moeilijk is om het commandline te doen; er zijn zat management GUIs voor SQLLite.

Moet je alleen de database files even kopieeren naar je desktop en dan met bijvoorbeeld http://sqliteman.yarpen.cz/ of https://www.jetbrains.com/datagrip/ openen.

Een beetje kennis kan natuurlijk nooit kwaad; zie hierboven. Zowel de assignment als de WHERE moet een geldige kolomnaam bevatten. Je voorbeeld UPDATE statement klopt dan ook niet:
code:
1
UPDATE meter_Calendar SET 27-03-2016 WHERE Date=26-03-2016

Moet zijn (mits de kolom "Date" bestaat, en afhankelijk van het datatype wat erin moet worden opgeslagen):
code:
1
UPDATE meter_Calendar SET Date='27-03-2016' WHERE Date='26-03-2016'

We are pentium of borg. Division is futile. You will be approximated.


Acties:
  • 0 Henk 'm!

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 12:56

Nick_S

++?????++ Out of Cheese Error

En als je wilt weten hoe je kolommen heten, dan kun je
code:
1
.schema

gebruiken: http://www.sqlite.org/cli.html.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'

Pagina: 1