ok wszystko śmiga lecz jak obejść by nie krzyczało mi ze ta tabela o tej nazwie jest zajęta a nie chce jej dropowac co chwile.
PS: żeby nie było najpierw przeszukuje google, a potem pytam :)
cur.execute("CREATE TABLE Kobieta (Wzrost varchar, Wiek varchar, Plec varchar, BMI varchar, zawartosc_tluszczu varchar);")
psycopg2.ProgrammingError: relation "kobieta" already exists
EDIT:
Oraz mam pytanie, jak wstawić podaną zmienna (typu wzrost, wagę, wiek, pleć, wyliczone BMI oraz zawartość tłuszczu) w tabele ?
Chodzi o to ze gdy ktoś poda te dane i na końcu potwierdzi że chce wstawić swoje dane do naszej bazy by wstawiło te że podane dane w tabele.
Jest takie coś możliwe ? Oraz w komentarzach zadałem dodatkowe nurtujące mnie pytania.
aktualnie Kod wygląda tak:
#-*- coding: utf-8 -*-
#importowanie potrzebnych bibliotek
from easygui import *
import psycopg2
import sys
#praca na bazie danych
try:
conn = psycopg2.connect("dbname='****' user='****' host='****' password='****'");
except:
msg_error = "Błąd - Nie moge polaczyć sie z bazą!!"
title_error = "Błąd - Nie moge polaczyć sie z bazą!!"
msgbox(msg_error, title_error, ok_button="OK")
cur = conn.cursor()
cur.execute("CREATE TABLE BMI (Wzrost varchar NOT NULL, Wiek varchar NOT NULL, Plec varchar NOT NULL, BMI varchar NOT NULL, Zawartosc_Tluszczu varchar NOT NULL);")
conn.commit()
#wybor programu lub wczytanie danych z bazy
msg_choice = "Mam uruchomić program czy wczytać dane z bazy online?"
title_choice = "Co chcesz uruchomić ?"
choices_choice = ["Program", "Baza"]
choice = choicebox(msg_choice, title_choice, choices_choice)
#baza
#program
# TĄ CZĘŚĆ KODU(W DÓŁ) CHCIAŁ BYM ZAPISAĆ JAKO FUNKCJE KTÓRĄ BEDE CHCIAŁ WYWOŁAĆ WYŻEJ W WYBORZE CZY ODPALIĆ PROGRAM CZY WCZYTAĆ Z BAZY LECZ NIE WIEM JAK TO ZROBIĆ.
# PODOBNIE WYŻEJ BEDE CHIAŁ ZDEFINIOWAC FUNKCJE BAZA I TAK SAMO WYWOLAC JA WYZEJ PRZY WYBOZE.
msg = "Sprawdz swoje BMI oraz zawartość tkanki tłuszczowej"
title = "Kalkulator BMI (Body Mass Index) oraz zawartość tkanki tłuszczowej"
fieldNames = ["Podaj swoją wagę [kg]", "Podaj swój wzrost [cm]", "Podaj swój wiek", "Podaj swoja pleć [M = Mężczyzna] [K = Kobieta]"]
fieldValues = []
fieldValues = multenterbox(msg, title, fieldNames)
#wczytywanie dancyh
weight = float(fieldValues[0])
growth = float(fieldValues[1])
age = float(fieldValues[2])
sex = fieldValues[3]
if fieldValues[3]=="k":
sex = 1
else:
sex = 0
#podstawianie pod wzór
BMI = float(weight)/(float(growth)*float(growth)/10000)
BMI = round(BMI*10)/10
FAT = (1.2*BMI) + (0.23*age) - (10.8*sex) - 5.4
#wyprowadzanie wyniku
if BMI < 18.5:
msg1 = "Twoje BMI wynosi: " + str(BMI)+ ", zawartość tłuszczu wynosi: " + str(FAT)+ " % Jesteś zbyt chudy/a jak na swój wzrost. Czy chesz wczytać swój wynik do naszej bazy ?"
choices = ["Tak", "Nie"]
choice = choicebox(msg1, title, choices)
#if choices =="Tak"
#i tu nie wiem czy dobrze robie ? i jak w VALUES zdefiniować te zmienne
#cur.execute("INSERT INTO BMI (Wzrost, Wiek, Plec, BMI, Zawartosc_Tluszczu) VALUES(%s, %s)"
#else:
# sys.exit(0)
elif BMI>25:
msg1 = "Twoje BMI wynosi: " + str(BMI)+ ", zawartość tłuszczu wynosi: " + str(FAT)+ "% Jak na swój wzrost to powinieneś/powinnaś schudnąć. Czy chesz wczytać swój wynik do naszej bazy ?"
choices = ["Tak", "Nie"]
choice = choicebox(msg1, title, choices)
else:
msg1 = "Twoje BMI wynosi: " + str(BMI)+ ", zawartość tłuszczu wynosi: " + str(FAT)+ "% Z twoją wago jest wszystko w porządku. Czy chesz wczytać swój wynik do naszej bazy ?"
choices = ["Tak", "Nie"]
choice = choicebox(msg1, title, choices)