Czy za każdym razem muszę dodawać id pomimo określenia przy tworzeniu tabeli "autoincrement primary key" ?

Odpowiedz Nowy wątek
2018-01-11 16:15
0

Cześć,próbuje zrobić gui w JavaFX które będzie odpowiedzialne za zarządzanie schroniskiem dla zwierząt. Gdy próbuje dodać do bazy nowego kota,dostaje błąd
"INSERT INTO Cats VALUES ('test','test','test','test',123)
excecption at exec action
[SQLITE_ERROR] SQL error or missing database (table Cats has 6 columns but 5 values were supplied)"

Czy za każdym razem przy dodawaniu kolejnego obiektu ( w tym przypadku kolejnego kota) muszę dodawać także id? Myślałem że będzie to robione automatycznie.

Baza danych:
http://wklej.org/id/3341157/
Koty (model)
http://wklej.org/id/3341158/
Dodaj kota ( controller)
http://wklej.org/id/3341159/

Pozostało 580 znaków

2018-01-11 16:18
Biały Terrorysta
0

A masz triggera który autoinkremetuje?

Pozostało 580 znaków

2018-01-11 16:25
0

Zajrzałeś chociaż do kodu? :) W stringu który jest odpowiedzialny za tworzenie tabeli dodałem to ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT.

Pozostało 580 znaków

2018-01-11 16:40
Biały Terrorysta
0

Trigger piszesz w bazie, ma obsługiwać autoinkrementację.

Pozostało 580 znaków

2018-01-11 16:43
Biały Terrorysta
0

Sekwencji też nie ma... Wrrrr.

Pozostało 580 znaków

2018-01-11 16:46
0

Autoinkrementacja zadziała jeżeli nie podasz żadnej wartości. Teraz próbujesz na siłę wepchnąć tam NULL, a baza nie nadpisze Twojej wartości i ją wstawi, po czym rzuci błąd bo łamiesz constraint.
Żeby zadziałało zrób inserta nie deklarując jawnego wrzucania ID:

INSERT INTO CATS(name, race , gender, coat_color,age) VALUES (?, ?, ?, ?, ?);

Pozostało 580 znaków

2018-01-11 16:55
0
krzysiek050 napisał(a):

Autoinkrementacja zadziała jeżeli nie podasz żadnej wartości. Teraz próbujesz na siłę wepchnąć tam NULL, a baza nie nadpisze Twojej wartości i ją wstawi, po czym rzuci błąd bo łamiesz constraint.
Żeby zadziałało zrób inserta nie deklarując jawnego wrzucania ID:

INSERT INTO CATS(name, race , gender, coat_color,age) VALUES (?, ?, ?, ?, ?);

Chodzi o "insertCat" tak? Zrobiłem tak jak napisałeś http://wklej.org/id/3341186/ . I niestety nadal to samo.

Pozostało 580 znaków

2018-01-11 19:03
0
Eman napisał(a):

Chodzi o "insertCat" tak? Zrobiłem tak jak napisałeś http://wklej.org/id/3341186/ . I niestety nadal to samo.

Tak.
Na pewno to samo?
[SQLITE_ERROR] SQL error or missing database (table Cats has 6 columns but 5 values were supplied)"
No, nie wydaje mi się, żeby był ten sam wyjątek...

Pozostało 580 znaków

2018-01-11 21:07
0

Magia :)

INSERT INTO Cats VALUES ('abc','abc','abc','abc',1)
excecption at exec action
[SQLITE_ERROR] SQL error or missing database (table Cats has 6 columns but 5 values were supplied)

Pozostało 580 znaków

2018-01-11 22:31
0

Wyszczególnij kolumny, pomijając id, wtedy pójdzie.

Pozostało 580 znaków

2018-01-12 13:59
0
Ktos napisał(a):

Wyszczególnij kolumny, pomijając id, wtedy pójdzie.

Nie rozumiem,mam usunąć kolumnę ID? Wcześniej (dopóki nie dodałem ID w bazie danych) wszystko działało,dodawanie, oraz "odzyskiwanie" danych.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0