Mam ramki danych w R o 3 kolumny, korzystając sqlSave mogę łatwo stworzyć tabelę w bazie danych SQL:zaktualizować tabelę SQL poprzez R sqlSave
channel <- odbcConnect("JWPMICOMP")
sqlSave(channel, dbdata, tablename = "ManagerNav", rownames = FALSE, append = TRUE, varTypes = c(DateNav = "datetime"))
odbcClose(channel)
Ta ramka danych zawiera informacje o Menedżerów (Nazwa , Nav i Date), które są aktualizowane codziennie o nowe wartości dla bieżącej daty i może stare wartości mogą być aktualizowane również w przypadku błędów.
Jak mogę wykonać to zadanie w R?
I treid używać SQLUpdate ale zwraca mi następujący błąd:
> sqlUpdate(channel, dbdata, tablename = "ManagerNav")
Error in sqlUpdate(channel, dbdata, tablename = "ManagerNav") :
cannot update ‘ManagerNav’ without unique column
Czy Twoja tabela zawiera klucz podstawowy? Domyślam się, że do tego odnosi się błąd. Może mógłbyś dodać kolumnę indeksu do tabeli z auto_increment i spróbować ponownie. –
Kluczem podstawowym powinna być nazwa menedżera i Nav ... –
Mh, w tym przypadku może "sqlUpdata/sqlSave" nie obsługuje tabel, które mają klucz podstawowy z dwiema kolumnami ?! Czy musisz to inaczej określić? Tylko zgadnij, bo dla mnie błąd brzmi, jakby miał problem z PK. Zastanawiam się tylko, czy twoje polecenie 'sqlSave' ustawia PK tak, jak chcesz. Może nadal możesz to sprawdzić w bazie danych, jeśli jest ona poprawnie ustawiona. –