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 개 이상의 열이있는 테이블입니다. 한 번에 채우기가 짜증이났다. –
@ 한데데 : '전체 줄'을 추가 할 때 무엇이 보이고, * 무엇을 볼 수 있습니까? 관계형 데이터베이스는 '부분 행'삽입을 지원하지 않습니다. 생략 한 열의 기본값 만 포함합니다. –
그래서 부르 한 칼리드가 제안한 방식을 사용해야합니까? 1 개의 전체 행을 삽입 한 후 업데이트하십시오. –