Советы по тестированию Django [закрыто]

Вызов называется MERGE. Посмотрите, я слишком ленив.

Остерегайтесь, однако, что MERGE не является атомарным, что может вызвать следующий эффект (спасибо, Marius):

SESS1:

create table t1 (pk int primary key, i int);
create table t11 (pk int primary key, i int);
insert into t1 values(1, 1);
insert into t11 values(2, 21);
insert into t11 values(3, 31);
commit;

SESS2: insert into t1 values(2, 2);

SESS1:

MERGE INTO t1 d
USING t11 s ON (d.pk = s.pk)
WHEN NOT MATCHED THEN INSERT (d.pk, d.i) VALUES (s.pk, s.i);

SESS2: commit;

SESS1: ORA-00001

17
задан Community 23 May 2017 в 11:45
поделиться