用户登录
用户注册

分享至

postgresql 提交

  • 作者: 头哥P1
  • 来源: 51数据库
  • 2020-10-03
函数和触发器过程总是在一个由外层查询建立起来的事务里执行?
---?它们无法开始或者提交事务,因为?PostgreSQL?没有嵌套事务.


Test=#?select?*?from?test_main;
?id?|??value
----+----------
??1?|?ONE1
??2?|?TWO1
??4?|?FOUR1
?11?|?ONEONE
?12?|?ONETWO
?13?|?ONETHREE
(6?行记录)


通过?BEGIN;??来开始一个事务,??COMMIT;?结束一个.


Test=#?BEGIN;
BEGIN
Test=#?INSERT?INTO?test_main(id,?value)?VALUES?(100,?'100');
INSERT?0?1
Test=#?INSERT?INTO?test_main(id,?value)?VALUES?(100,?'100');
错误:??重复键违反唯一约束"test_main_pkey"
描述:??键值"(id)=(100)"?已经存在
Test=#?SELECT?*?FROM?test_main;
错误:??当前事务被终止,?事务块结束之前的查询被忽略
Test=#?ROLLBACK;
ROLLBACK
Test=#?SELECT?*?FROM?test_main;
?id?|??value
----+----------
??1?|?ONE1
??2?|?TWO1
??4?|?FOUR1
?11?|?ONEONE
?12?|?ONETWO
?13?|?ONETHREE
(6?行记录)



  插入大量数据最好用copy命令,比insert快的太多了。

copy只是一个sql命令,不需要设置的,postgresql的文档里面有这个命令的详细用法。
有什么问题就hi我吧。
软件
前端设计
程序设计
Java相关