2016-10-04 38 views
0

MySQLdbを使用してデータベースにレコードを挿入すると、にUNIQUE KEYのテーブルが作成されました。
重複した入力エラーを避ける

私はエラー:IntegrityError: (1062, "Duplicate entry 'xxxxx.com' for key 'domain'")を避けたいと思います。

どうすればいいですか?

私のコードはここにある:

try: 
    CONN = MySQLdb.connect(host=SQL_HOST, 
          user=SQL_USER, 
          passwd=SQL_PASSWD, 
          db=SQL_DB) 
except MySQLdb.Error, e: 
    print "Error %d: %s" % (e.args[0], e.args[1]) 
    sys.exit(1) 

cursor = CONN.cursor() 

def insert_table(domain, trust_flow, citation_flow, ref_domains, ext_back_links): 
    sql = "INSERT INTO %s (domain, TrustFlow, CitationFlow, RefDomains, ExtBackLinks) values('%s','%s','%s','%s','%s')" % (SQL_TABLE, domain, trust_flow, citation_flow, ref_domains, ext_back_links) 
    if cursor.execute(sql): 
     CONN.commit() 
+1

停止を使用してみてください。 –

答えて

2

既存のレコードと同じ値を持つレコードを挿入INSERT ... ON DUPLCATE KEY UPDATE

INSERT INTO %s (domain, TrustFlow, CitationFlow, RefDomains, ExtBackLinks) values('%s','%s','%s','%s','%s') 
ON DUPLICATE KEY UPDATE TrustFlow = VALUES(TrustFlow), CitationFlow = VALUES(CitationFlow) .... 
関連する問題