私は取引で遊んだが、私は説明できない奇妙な振る舞いを得ました。多分あなたは私を助けることができますか?トランザクションSERIALIZABLE、奇妙な動作?
両方SERIALIZABLE分離レベルで実行されている2つのトランザクション、T1とT2を考えます。 T1はコミットせずに挿入の実行を開始します。 T2は、T1は、その挿入操作を実行したときに開始します。ただし、T2は10k行を挿入します。しかし、147挿入後、エラーORA-08177:このトランザクションのアクセスをシリアル化できません。 T1は、この行にはロックを持っていないので
しかし、これは、起こるはずの(そのキーが重複しているか、そのようなものではない)では、なぜこれがさえ起こるのでしょうか?
T1
INSERT INTO A
VALUES(520089, 1, 'START', '198903111695', 'YEAR', 2017, '675013219393', 'I8', 'CREATED', '2016-08-09 18:26:49','2017-03-15 06:39:27');
T2
INSERT INTO A VALUES(520100,2, 'ACHIEVED', '196107246620', 'YEAR', 2018, '660564690379', 'I0', 'FULL', '2018-07-09 07:54:35', '2010-10-20 17:42:04');
INSERT A VALUES(520101,2, 'ACHIEVED', '196107246620', 'YEAR', 2018, '660564690379', 'I0', 'FULL', '2018-07-09 07:54:35', '2010-10-20 17:42:04');
.....for loop
INSERT INTO A VALUES(520147, 2, 'STARTED', '196503264535', 'MONTH', 201105, '305355347867', 'I8', 'TESTED', '2012-11-14 00:31:58', '2015-08-16 09:36:41')
here it crash, and gives me the error.
プライマリキーはAの最初の値で、2番目の値は外部キーです。
だから、誰かが何が起こっているか説明できますか?
このトピックを見てくださいhttps://asktom.oracle.com/pls/asktom/f?p=100:11:0:::P11_QUESTION_ID:7636765105002 – Serg