相关疑难解决方法(0)

Postgres:INSERT如果不存在

我正在使用Python写入postgres数据库:

sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES ("
sql_string += hundred + ", '" + hundred_slug + "', " + status + ");"
cursor.execute(sql_string)
Run Code Online (Sandbox Code Playgroud)

但由于我的一些行是相同的,我收到以下错误:

psycopg2.IntegrityError: duplicate key value  
  violates unique constraint "hundred_pkey"
Run Code Online (Sandbox Code Playgroud)

如何编写'INSERT除非此行已存在'SQL语句?

我见过这样的复杂陈述:

IF EXISTS (SELECT * FROM invoices WHERE invoiceid = '12345')
UPDATE invoices SET billed = 'TRUE' WHERE invoiceid = '12345'
ELSE
INSERT INTO invoices (invoiceid, billed) VALUES ('12345', 'TRUE')
END IF
Run Code Online (Sandbox Code Playgroud)

但首先,这对于我需要的东西是否过度,其次,我怎样才能将其中一个作为简单的字符串执行?

python postgresql sql-insert

304
推荐指数
10
解决办法
27万
查看次数

如果Postgres中不存在记录,则插入值

我想让这个工作,但Postgres不喜欢WHERE在这种类型的插入中使用该子句.

  INSERT INTO keys(name, value) VALUES
    ('blah', 'true')
  WHERE NOT EXISTS (
    SELECT 1 FROM keys WHERE name='blah'
  );
Run Code Online (Sandbox Code Playgroud)

sql postgresql

11
推荐指数
2
解决办法
2万
查看次数

如何将 Pandas DataFrame 更新到 PostgreSQL 表?

我从网络资源中抓取了一些数据并将它们全部存储在 Pandas DataFrame 中。现在,为了利用 SQLAlchemy 提供的强大的数据库工具,我想将所述 DataFrame 转换为 Table() 对象,并最终将所有数据 upsert 到 PostgreSQL 表中。如果这是可行的,那么完成这项任务的可行方法是什么?

python postgresql sqlalchemy upsert pandas

6
推荐指数
2
解决办法
4267
查看次数

标签 统计

postgresql ×3

python ×2

pandas ×1

sql ×1

sql-insert ×1

sqlalchemy ×1

upsert ×1