我正在尝试为食谱存储程序创建一个sqlite数据库,该程序包含在食谱表中,人数,成分,烹饪温度和烹饪时间。我打算在配料部分内创建另一个表,以存储'id'(将自动递增);质量数(例如,200);质量类型(例如,g)和食物类型(例如,面粉)。
我正在使用此代码尝试获取变量并存储它们:
def setIngredientsInRecipe(recipeName):
cursor.execute("""INSERT INTO %s(ingredients) CREATE TABLE\
(ID INT PRIMARY KEY AUTO_INCREMENT, MassNumber VARCHAR(10), MassType VARCHAR(50) FoodType VARCHAR(50))""" % (recipeName))
print ""
massNoInput = raw_input("Please enter your first ingredient mass(just the number): ")
massTypeInput = raw_input("Now please input the mass type (grams etc): ")
foodInput = raw_input("Please enter your first ingredient type: ")
cursor.execute("""INSERT INTO %s(ingredients(MassNumber)) VALUES('%s')""" % (recipeName,massNoInput))
cursor.execute("""INSERT INTO %s(ingredients(MassType)) VALUES('%s')""" % (recipeName,massTypeInput))
cursor.execute("""INSERT INTO %s(ingredients(FoodType)) VALUES('%s')""" % (recipeName,foodInput))
return recipeName
显然我稍后会添加一些数字检查,看看输入是否有效。
它在第一个cursor.execute行崩溃,说它是语法错误......
如果有人能向我解释如何解决这个问题,我会非常感激,我已经看了很久这段代码!
谢谢, 瑞恩:)
答案 0 :(得分:2)
使用两个表,一个用于配方,一个用于配料,并为每个配料记录包含其所属配方的ID:
CREATE TABLE recipe(ID, People, CookingTime);
CREATE TABLE ingredient(ID, RecipeID, MassNumber, MassType, FoodType);
要将一个成分添加到配方中,只需在该表中插入一条记录即可 (这里,42是食谱的ID):
INSERT INTO ingredient(RecipeID, MassNumber, MassType, FoodType) VALUES (42, ...)