forked from dlang/cdcdb
Переписаны запросы, которые предотвращают автоинкремент в случае, если производится повторная попытка добавления существующей записи
This commit is contained in:
parent
c290bb6f51
commit
dd28c4b4d7
1 changed files with 18 additions and 8 deletions
|
@ -285,8 +285,10 @@ public:
|
|||
auto queryResult = sql(
|
||||
q{
|
||||
INSERT INTO blobs (sha256, z_sha256, size, z_size, content, zstd)
|
||||
VALUES (?,?,?,?,?,?)
|
||||
ON CONFLICT (sha256) DO NOTHING
|
||||
SELECT ?1,?2,?3,?4,?5,?6
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM blobs WHERE sha256 = ?1
|
||||
)
|
||||
RETURNING sha256
|
||||
},
|
||||
blob.sha256[],
|
||||
|
@ -305,8 +307,11 @@ public:
|
|||
{
|
||||
auto queryResult = sql(
|
||||
q{
|
||||
INSERT INTO processes (name) VALUES (?)
|
||||
ON CONFLICT(name) DO NOTHING
|
||||
INSERT INTO processes (name)
|
||||
SELECT ?1
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM processes WHERE name = ?1
|
||||
)
|
||||
}, name
|
||||
);
|
||||
|
||||
|
@ -318,8 +323,11 @@ public:
|
|||
{
|
||||
auto queryResult = sql(
|
||||
q{
|
||||
INSERT INTO files (name) VALUES (?)
|
||||
ON CONFLICT(name) DO NOTHING
|
||||
INSERT INTO files (name)
|
||||
SELECT ?1
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM files WHERE name = ?1
|
||||
)
|
||||
}, name
|
||||
);
|
||||
|
||||
|
@ -332,8 +340,10 @@ public:
|
|||
auto queryResult = sql(
|
||||
q{
|
||||
INSERT INTO users (uid, name)
|
||||
VALUES (?, ?)
|
||||
ON CONFLICT(uid) DO NOTHING;
|
||||
SELECT ?1,?2
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM users WHERE uid = ?1
|
||||
)
|
||||
}, uid, name
|
||||
);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue