[PostgreSQL] А что, в транзакции можно менять определение данных? (ЗАК

kruzer25

Создавать новые таблицы, удалять столбцы итп - и всё это будет откачено при rollback?
Не нашёл в мануале никаких слов насчёт этого...

pitrik2

может это в постгресе и можно, но этоявно противоречит стандарту

kruzer25

А можно сцылку на стандарт, а то что-то я найти не могу...

kruzer25

Слава богу, нельзя

artimon

Создавать временные таблицы можно

eduard615


=> BEGIN TRANSACTION ;
BEGIN
=> CREATE TABLE tst(id int);
CREATE TABLE
=> INSERT INTO tst values(1);
INSERT 0 1
=> \d+ tst
Таблица "public.tst"
Колонка | Тип | Модификаторы | Описание
---------+---------+--------------+----------
id | integer | |
Содержит OIDs: нет

=> SELECT * from tst ;
id
----
1
(1 запись)

=> ROLLBACK ;
ROLLBACK
=> \d+ tst
Не найдено ни одного отношения с именем "tst".
=>

kruzer25

Да вот хз, у меня сейчас тоже всё сработало. А до этого - не работало...

eduard615

должно работать, я так всегда большие патчи на бд накатываю.
помнится, в 7.4 были с этим проблемы, вроде бы с удалением таблицы внутри транзакции, но это давно профиксили.
Оставить комментарий
Имя или ник:
Комментарий: