ОРАКУЛ - столы - PullRequest
       37

ОРАКУЛ - столы

2 голосов
/ 21 декабря 2009

После ввода кода для создания новой таблицы в SQL ORACLE сохранятся ли изменения, если я выйду из сеанса SQL?

Ответы [ 4 ]

7 голосов
/ 21 декабря 2009

Да, ваши определения таблиц сохранены; Oracle DDL имеет неявную транзакцию *. Другие базы данных, такие как PostrgreSQL, имеют транзакционный DDL , но с Oracle это происходит автоматически, поэтому будьте осторожны.

* Oracle Transaction Management : Если текущая транзакция содержит какие-либо операторы DML , Oracle сначала фиксирует транзакцию, а затем выполняет и фиксирует оператор DDL как новый, транзакция с одним оператором.

4 голосов
/ 21 декабря 2009

Правильный ответ: Oracle DDL использует неявную транзакцию - нет возможности вернуть транзакцию обратно, она немедленно зафиксирована.

1 голос
/ 22 декабря 2009

Короче говоря "да". DDL заявления совершаются сразу после исполнения. Если ваш сценарий также содержит операторы INSERT для заполнения этих таблиц, они не будут сохранены без отдельной фиксации.

0 голосов
/ 21 декабря 2009

Хм, а что? Да, все изменения в структурах данных и таблиц немедленно сохраняются (кроме случаев, когда часть транзакции ожидает окончательного сохранения до конца транзакции) Вещи, которые зависят от вашего сеанса, это переменные сеанса и настройки сеанса.

...