3 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
PostgreSQL對(duì)大多數(shù)數(shù)據(jù)庫(kù)對(duì)象(某些表,索引等,但沒有數(shù)據(jù)庫(kù),用戶)具有事務(wù)性DDL。但是實(shí)際上,任何DDL都會(huì)ACCESS EXCLUSIVE
鎖定目標(biāo)對(duì)象,從而使其完全無法訪問,直到DDL事務(wù)完成。同樣,并非所有情況都得到了很好的處理-例如,如果您嘗試foo
在另一個(gè)事務(wù)刪除它并創(chuàng)建替換表的同時(shí)從表中進(jìn)行選擇foo
,那么被阻塞的事務(wù)將最終收到錯(cuò)誤,而不是查找新foo
表。(編輯:此問題已在PostgreSQL 9.3或更高版本中修復(fù))
CREATE INDEX ... CONCURRENTLY
例外,它使用三個(gè)事務(wù)在允許并發(fā)更新的同時(shí)向表添加索引,因此它本身不能在事務(wù)中執(zhí)行。
另外,數(shù)據(jù)庫(kù)維護(hù)命令VACUUM
不能在事務(wù)中使用。

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
看來其他答案已經(jīng)過時(shí)了。
截至2019年:
Postgres支持許多版本的事務(wù)性DDL。
SQLite在許多版本中都支持事務(wù)性DDL。
- 3 回答
- 0 關(guān)注
- 1141 瀏覽
添加回答
舉報(bào)