Моя задача - создать тупик с двумя транзакциями SQL. Я работаю в PgAdmin.
Задача гласит:
«Создайте две транзакции SQL, которые могут быть выполнены
интерактивно (комментируйте в комментариях, в каком порядке должны чередоваться транзакции), чтобы
создать тупик и объяснить причину тупика. "
Я попытался создать его и прочитать об этом в Интернете, но это единственная ошибка, которую я получаю, когда пытаюсь заставить два процесса работать одновременно без COMMIT / ROLLBACK.
Я получаю это сообщение об ошибке:
ERROR: current transaction is aborted, commands ignored until end of transaction block
SQL state: 25P02
Если это не тупик, можете ли вы помочь мне сделать его?
http://zarez.net/?p=1069
CREATE TABLE deadlock_example_table_1 (column1 int)
CREATE TABLE deadlock_example_table_2 (column1 int)
INSERT INTO deadlock_example_table_1 (column1)
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
GO
INSERT INTO deadlock_example_table_2 (column1)
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
GO
BEGIN;
DELETE FROM deadlock_example_table_1 WHERE column1 = 2
BEGIN;
DELETE FROM deadlock_example_table_2 WHERE column1 = 2
https://medium.com/@clairesimmonds/postgresql-decoding-deadlocks-183e6a792fd3
Я думал, что результат должен выглядеть примерно так, как в этой статье.
ERROR: deadlock detected
DETAIL: Process 16121 waits for AccessExclusiveLock on relation 17389 of database 16390; blocked by process 15866.
Process 15866 waits for AccessShareLock on relation 17309 of database 16390; blocked by process 16121.
HINT: See server log for query details.