使用knexjs进行插入忽略

时间:2016-05-05 08:35:48

标签: mysql sql knex.js

我遇到这个问题,我想要使用knexjs插入一组数据。但我希望插入忽略重复,即仅在数据不存在时插入。我可以这样做

knex('rates').insert(allRates);

但我想知道如果它存在,我可以使用ignore修饰符。我也不想做knex.raw 谢谢。

2 个答案:

答案 0 :(得分:7)

Knex.js不提供此功能。 一个潜在的解决方案是:

knex.raw(knex('rates').insert(allRates).toString().replace('insert', 'INSERT IGNORE'));

这是raw功能的最低使用量,并不会强制您手动转换数据。

答案 1 :(得分:0)

我通过以下方式进行操作:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

class InstagramBot:

    def __init__(self, username, password):
        self.username = username
        self.password = password
        self.driver = webdriver.Firefox()

    def closeBrowser(self):
        self.driver.close()

    def login(self):
        driver = self.driver
        driver.get("https://www.instagram.com/accounts/login/?hl=en")
        time.sleep(2)
        user_name_elem = driver.find_element_by_xpath
        ("//input[@name='username']")
        user_name_elem.clear()
        user_name_elem.send_keys(self.username)
        passworword_elem = driver.find_element_by_xpath
        ("//input[@name='password']")
        passworword_elem.clear()
        passworword_elem.send_keys(self.password)
        passworword_elem.send_keys(Keys.RETURN)
        time.sleep(2)


ig = InstagramBot("username", "password")
ig.login()