对于oracle而言
1.DDL语句默认执行commit
2.在子事务中执行commit,会将该子事务之前执行的sql语句真正的提交了。
对于PostgreSQL而言
1.DDL语句默认不执行commit
2.在子事务中执行commit,并不会将该子事务之前执行的sql语句真正提交,需要等到顶层事务提交后才会真正提交。
针对这个差别,一个存储过程遍历某个用户的所有表,然后一一删除,ORACLE不存在内存溢出的风险,而PostgreSQL就存在。故在PostgreSQL中需要删除大量表时,最好一次性不要删除超过1000张表。