Рассмотрим эту БД таблицу структуру:Записывается ли родительская таблица, когда операция DDL происходит на дочерней таблице?
table1 {col1, col2, COL3}
таблица2 {col5, col2, col6}
Стлб2 является ПК из таблица1 и является внешним ключом в table2 - ограничение ссылочной целостности существует в таблице2 на col2. но col2 НЕ индексируется в таблице2.
Теперь я выдаю операцию DDL, чтобы удалить столбец col6 из таблицы2.
Выпуск: другие приложения, обращающиеся table1 умер, так как они были не в состоянии Вставьте в table1, потому что замок был приобретен на этом столе.
Вопрос: Выполняет ли DDL-операцию на таблице2 только ограничение внешнего ключа приобретать эксклюзивную блокировку на таблице1?
Я не могу найти никакой информации в Интернете, связанной с этой проблемой. Любая помощь приветствуется.
логически, да, это должно быть. – Rahul
Он может блокироваться, поскольку столбцы отбрасывания приводят к физическому обновлению данных в блоках. Во всяком случае, это лучше, чтобы проверить: ВЫБРАТЬ a.sid , a.serial # , a.username , c.os_user_name , a.program , a.logon_time , a.machine , a.terminal , b.object_id , зиЬзЬг (b.object_name, 1,40) oBJECT_NAME , DECODE (c.locked_mode, 1, 'Нет Lock', 2, 'Row Share', 3, 'Row Exclusive', 4 , 'Общая таблица', 5, 'Эксклюзивная эксклюзивная строка', 6, 'Эксклюзив') locked_mode от v $ session a , db a_objects b , v $ locked_object c где a.sid = c.session_id и b.object_id = c.object_id; – Rusty