2016-05-08 10 views
0

に存在しない場合、私は、私は'unique_code'列がない場合'employeecode'テーブルに値を挿入する関数を作成することができますどのようにこのSQLAlchemyの - コラム(MySQLの)

class Employeecode(Base): 
    __tablename__ = 'employeecode' 
    id = Column(Integer, primary_key=True) 
    unique_code = Column(String(5), unique=True) 
    employe_name = Column(String(50)) 
    designation = Column(String(50)) 

のような単純な表を持っているテーブルに挿入しますその価値がある。

insert_unique(unique_code,employe_name,designation) 
+0

UNIQUE_CODE =列(文字列(5)、ユニーク= TRUE)? –

+0

私はそれをデータベースレベルで実装しましたが、効率的ではないでしょう。 DBに固有ですが、MySQLを実行している場合は、INSERT IGNORE INTO ...を使用できます。 execute(Employeecode .__ table __。insert()。prefix_with( "IGNORE")、items) – MOCKBA

答えて

0

まずあなたがリスト内のすべての以前のunicode_valueを保存することができ、その後、あなたのクエリをチェックし、実行することができます。..

def function(**kwargs): 
session = Session() 
unique_list =[] 
employeecodes = db.session.query(Employeecode).all() 
for employee in employeecodes: 
    unique_list.append(employee.unique_code) 
if kwargs['unique_code'] not in unique_list: 
    employee = Employeecode() 
    employee.unique_code = kwargs['unique_code'] 
    employee.employe_name = kwargs['employe_name'] 
    employee.designation = kwargs['designation'] 
    session.commit() 
    retval = row2dict(employee) 
    session.close() 
    return retval 
else: 
    pass 
関連する問題