ich muss für ein Informatik Projekt eine Datenbank mit SQL in Python erstellen, mit der ich Sachen löschen, ändern, hinzufügen und anzeigen lassen kann.
Das Programm hab ich eigentlich fertig, aber da steht jetzt: "sqlite3.OperationalError: no such table: Autor"
Ich habe mehrere Tabellen erzeugt, genau nach dem gleichen Aufbau, aber nur die Tabelle Buch funktioniert...
Hat jemand eine Idee, woran das liegen könnte?
Die Tabellen hab ich so erstellt:
Code: Alles auswählen
##Hauptschleife
import sqlite3
conn = sqlite3.connect("buecherei.db")
cursor = conn.cursor()
##Datenbank erstellen
def erzeugeDB (conn):
conn.cursor().execute('''CREATE TABLE Buch (
ISBN INTEGER PRIMARY KEY,
Autor VARCHAR (25),
Titel VARCHAR(50),
Verlag VARCHAR(50),
Preis INTEGER,
Genre VARCHAR(50))''')
conn.cursor().execute('''CREATE TABLE Autor (
AutorNr INTEGER PRIMARY KEY,
Vorname VARCHAR(25),
Nachname VARCHAR(25),
Geburtsdatum DATE,)''')
conn.cursor().execute('''CREATE TABLE Kunde (
KundenNr INTEGER PRIMARY KEY,
Vorname VARCHAR(25),
Nachname VARCHAR(25),
Geschlecht VARCHAR(5),
Geburtsdatum DATE)''')
Code: Alles auswählen
def addBuch(conn):
try:
erzeugeDB (conn)
except:
pass
c = conn.cursor()
print("---------------\n Neues Buch einfügen...")
ISBN = input("Bitte gib die ISBN ein: ")
Autor = input("Bitte gib den Autor ein: ")
Titel = input("Bitte gib den Titel ein: ")
Verlag = input("Bitte gib den Verlag ein: ")
Preis = input("Bitte gib den Preis ein: ")
Genre = input("Bitte gib das Genre ein: ")
c.execute("INSERT INTO Buch(ISBN, Autor, Titel, Verlag, Preis, Genre) VALUES (?, ?, ?, ?, ?, ?);",(ISBN, Autor, Titel, Verlag, Preis, Genre))
conn.commit()
def addAutor(conn):
try:
erzeugeDB (conn)
except:
pass
c = conn.cursor()
print("---------------\n Neuen Autor einfügen...")
AutorNr = input("Bitte gib die Autorennummer ein: ")
Vorname = input("Bitte gib den Vorname ein: ")
Nachname = input("Bitte gib den Nachname ein: ")
Geburtsdatum = input("Bitte gib das Geburtsdatum ein: ")
c.execute("INSERT INTO Autor(AutorNr, Vorname, Nachname, Geburtsdatum) VALUES (?, ?, ?, ?, ?);",(AutorNr, Vorname, Nachname, Geburtsdatum))
conn.commit()
def addKunde(conn):
try:
erzeugeDB(conn)
except:
pass
c = conn.cursor()
print("---------------\n Neuen Kunden einfügen...")
KundenNr = input("Bitte gib die KundenNr. ein: ")
Vorname = input("Bitte gib den Vorname ein: ")
Nachname = input("Bitte gib den Nachname ein: ")
Geschlecht = "Falsches Geschlecht"
while True:
Geschlecht = input("Bitte gib das Geschlecht (w oder m) ein: ")
if(Geschlecht=="m"):
break
elif(Geschlecht=="w"):
break
Geburtsdatum = input("Bitte gib das Geburtsdatum ein: ")
c.execute("INSERT INTO Kunde(KundenNr, Vorname, Nachname, Geschlecht, Geburtsdatum) VALUES (?, ?, ?, ?, ?);",(KundenNr, Vorname, Nachname, Geschlecht, Geburtsdatum))
conn.commit()
Liebe Grüße
Die Fragerin