ich habe da ein keines Problem an dem ich gerade nage.
ich versuche meine DB mit Datensätzen zu füllen und die Spalte id per Autoincrement zu durchnummerieren.
so wei so gut. Ich habe mich da anhand eines Tutorials entlang gehangelt und lt dieses Tutorials muss man die Spalte "id" die ja das Autoincrement hat nicht extra übergeben. Soweit ich mich zu erinnern glaube war das bei MySQL und PHP auch so.
Tja wenn ich das mache bekomme ich aber diese Fehlermeldung:
File "/Users/immanuelschade/Documents/PyQt/DB-Projekt/DBProjekt.py", line 91, in sqlEingabe
zeiger.execute("""
sqlite3.OperationalError: table personen has 6 columns but 5 values were supplied
Abort trap: 6
Code: Alles auswählen
def sqlEingabe():
verbindung = sqlite3.connect("pers.db")
zeiger = verbindung.cursor()
sql_anweisung = """
CREATE TABLE IF NOT EXISTS personen (
id INTEGER PRIMARY KEY AUTOINCREMENT,
vorname VARCHAR(20),
nachname VARCHAR(30),
geburtstag DATE,
ref1 VARCHAR(30),
knummer INTEGER
);"""
zeiger.execute(sql_anweisung)
vorname = eingabeWindow.lineEditVorname.text()
nachname = eingabeWindow.lineEditNachname.text()
geburtstag = eingabeWindow.lineEditGeburt.text()
ref1 = "t"
knummer = 0
zeiger.execute("""
INSERT INTO personen
VALUES (?,?,?,?,?)
""",
( vorname, nachname, geburtstag, ref1, knummer)
)
verbindung.commit()
verbindung.close()
wenn ich aber die "id" reinschreibe in die sql Anweisung so kommt das die "id" nicht definiert ist oder wenn ich sie definiere
dass es vom falschen Datentyp ist (id = '').
wo bitte ist mein Denkfehler?