我是sqlalchemy的新手,遇到問題。 我找不到只插入新行的一部分的方法。 隨着session.add()
我可以插入一行,如果我給所有列。但是如果我只想給一些專欄呢?sqlalchemy:只插入一行的一部分
在互聯網上,我發現有些地方是叫我用.insert()
sqlalchemy.sql.expression.insert(table, values=None, inline=False, **kwargs)
(新的節目,所以我並不完全瞭解這些線路還)
我進口
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, ForeignKey, Boolean
from sqlalchemy.orm import relationship, backref
from sqlalchemy.orm import sessionmaker
from sqlalchemy.sql.expression import insert
Base = declarative_base()
engine = create_engine('sqlite:///test.db')
class Users(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String, unique=True)
password = Column(String)
email = Column(String)
def __init__(self, name, password, email):
self.name = name
self.password = password
self.email = email
Session = sessionmaker(bind=engine)
Session.configure(bind=engine)
session = Session()
session.add(users.insert().values(name="some name"))
現在這最後一行總是給我一個AttributeError,(Users has no attribute insert)
我做錯了什麼?
你能給我怎樣的代碼行會看一個例子嗎?我找到了添加整行的方法。但不是一個正確的語法來填補一些。問題是我有一張50列以上的表格。這將是煩人的填寫一次 – 2013-03-03 10:31:55
@HansdeJong:你看到什麼時候添加一個'全行',你期望*看到什麼?沒有關係數據庫支持「部分行」插入;它們只包含您省略的列的默認值。 – 2013-03-03 10:32:53
所以我必須用Burhan Khalid建議的方式嗎?插入1個完整的行,然後才更新它? – 2013-03-03 10:38:26