相关疑难解决方法(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万
查看次数

如何创建一个适合PostgreSQL中会话ID的随机字符串?

我想制作一个随机字符串,用于使用PostgreSQL进行会话验证.我知道我可以得到一个随机数SELECT random(),所以我试过SELECT md5(random()),但这不起作用.我怎样才能做到这一点?

random postgresql

98
推荐指数
12
解决办法
7万
查看次数

当我耗尽bigint生成的密钥时会发生什么?怎么处理?

我无法为自己想象一个好的答案,所以我想在这里问一下.在我看来,我总是想知道如果AUTO INCREMENT PRIMARY ID我的MySQL表中的列用尽了会发生什么?

比方说,我有一个有两列的表.的ID(auto increment, primary, BIGINT unsigned)和DESC(VARCHAR 255).我肯定知道BIGINT很多,但它可以达到极限.如何处理场景,其中的情况下,ID达到它的极限?我需要另一台服务器吗?如果那么我该怎么同步呢?这是正确的方法吗?任何见解的朋友.

mysql sql postgresql

18
推荐指数
2
解决办法
5625
查看次数

标签 统计

postgresql ×3

mysql ×1

python ×1

random ×1

sql ×1

sql-insert ×1