我正在编写一个程序,我可以在Oracle 11g数据库中添加面包。到目前为止我得到的代码允许我手动添加ID,但添加时应该自动增加,因此不需要ID。
BreadID = int(input("Enter the bread ID: "))
Name = input("Please enter the name for the new bread: ")
LoafPrice = int(input("Enter the price in pence: "))
Calories = int(input("Enter the calories: "))
cur.execute("INSERT INTO BREAD VALUES (:BID,:BName,:BCal,:BPrice)",{'BID':BreadID, 'BName':Name, 'BPrice':LoafPrice, 'BCal':Calories,})
con.commit()
这是我手动添加它的代码。我在网上搜索了如何添加自动增量的答案,但都没有给我提供错误和更多问题。
我在网上看到,只要离开ID列就会允许自动增加,但即使我已经指定了列名,我也会得到'ORA-00947:没有足够的值'。
任何帮助都会受到赞赏,因为我已经坚持了一段时间了。:)
答案 0 :(得分:1)
之前我遇到过同样的问题,请尝试在SQL表达式中指定列名,并将BreadID设为NULL。
所以sql表达式看起来像:
INSERT INTO BREAD (BID, BName, BCal, BPrice)
VALUES
(NULL, 'French Toast', 0, 100);
希望它有所帮助!