如果PYTHON中的CSV记录表中不存在,则插入记录

2024-10-05 11:07:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望插入查询在CSV文件中没有新的东西,如果是,我只想插入这个,而不是所有CSV,任何建议都太好了!在

注:这与其他问题不重复,因为这里“%s”没有稳定的值,而且在python中语法不同!在

    cursorobject=connection.cursor()
    sql2="CREATE DATABASE IF NOT EXISTS mydb"
    cursorobject.execute(sql2)
    sql1="CREATE TABLE IF NOT EXISTS users(id int(11) NOT NULL AUTO_INCREMENT,first_name varchar(255),last_name varchar(255),company_name varchar(255),address varchar(255),city varchar(255),country varchar(255),postal varchar(255),phone1 varchar(255),phone2 varchar(255),email varchar(255),web varchar(255),PRIMARY KEY(id))"
    cursorobject.execute(sql1)
    csvfile=open('Entries.csv','r')
    reader = csv.reader(csvfile,delimiter=',')

    for row in reader:
      cursorobject.execute("INSERT INTO users(first_name,last_name,company_name,address,city,country,postal,phone1,phone2,email,web) VALUES (%s ,%s, %s,%s,%s,%s,%s,%s,%s,%s,%s)",row)

Tags: csvnameidexecuteifcreateexistsnot
2条回答

您可以使用INSERT INTO SELECT来执行此操作

INSERT INTO users
(first_name,last_name,company_name,address,city,country,postal,phone1,phone2,email,web)
SELECT %s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s FROM users WHERE NOT EXISTS
(SELECT * FROM users WHERE first_name=%s AND last_name=%s)

在注意:就像你一样已经说过%s不是静态值,但是如果执行sql,%s将根据您通过%s传递的参数转换为实际数据

在将记录输入数据库之前,对users表进行一个select查询,可以使用名字和姓氏

相关问题 更多 >

    热门问题