use*_*343 2 python sql sqlite sqlalchemy
我的脚本以正确的方式增加PK,我遇到了一些麻烦.在sqlalchemy文档之后,必须进行一些特殊配置才能使其与sqlite一起使用.这是我的脚本:
def db_stuff():
engine = create_engine('sqlite:///test.db', echo=True)
metadata = MetaData()
db = Table('users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String),
Column('fullname', String),
Column('password', String),
sqlite_autoincrement=True)
metadata.create_all(engine)
return engine.connect(),db
def add_to_db():
ret = db_stuff()
conn = ret[0]
db = ret[1]
try:
conn.execute("INSERT INTO users VALUES ('1','john','smith john','23')")
result = conn.execute(db.select())
for row in result:
print row
finally:
conn.close()
Run Code Online (Sandbox Code Playgroud)
如果你能帮我弄清楚我在这里缺少的东西会很酷,我开始绝望了...问题是每次都没有增加"id"并且我得到一个错误,它应该是唯一的我运行脚本两次.
TIA
尝试
conn.execute("INSERT INTO users(name, fullname, password) VALUES ('john','smith john','23')")
Run Code Online (Sandbox Code Playgroud)
id是自动增量因此我们不应该传递它,但是我们需要指定表中其他参数表示的内容,即值('john','smith john','23')应该去哪里.
它应该工作.