2014-09-18 132 views
0

我正在处理我的数据库类项目。我读了PostgreSQL的Write-ahead-logging README,它提到的几个命令,如SQL命令关于几个SQL命令的问题

BEGIN 
COMMIT 
ROLLBACK 
SAVEPOINT 
ROLLBACK 
RELEASE 

在SQL标准,我没有看到这些命令。我很困惑。这些命令和标准的“SELECT”有什么区别?谁能告诉我更多关于这些命令的信息?这些命令可以像标准SQL一样使用吗?

+0

需要了解交易。 – duffymo 2014-09-18 20:32:42

+0

与“标准SELECT”和“INSERT”或“DELETE”或“UPDATE”之间的区别相同 - 它们完全不同。请查找SQL教程并阅读有关事务的部分,因为您提到的所有SQL关键字都与它们有关。 – 2014-09-18 20:34:51

+0

所有这些命令都是**标准的一部分。检查Postgres(btw:* not * PostGre)手册。每个命令在最后都有一个部分,用于说明命令是否符合标准。 – 2014-09-18 21:08:52

回答

0

ANSI SQL标准[http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt]也是你的朋友,你可以在这里找到这些关键字。

通常,所有这些关键字在不同平台上的行为类似,但请注意其功能,性能或使用方面的细微差异。

例如:SAVEPOPINT在不同的平台上具有相似的含义(虽然可能有不同的实现或上下文),因此您需要参考平台文档以了解具体内容。

在这种情况下,Postgres 9.1手册[http://www.postgresql.org/docs/9.1/](我已收藏书签)ROLLBACK和RELEASE关键字与其他修饰符一起用于事务内的SAVEPOINT。 OTOH:在SAVEPOINT [http://msdn.microsoft.com/en-us/library/ms188378.aspx]上运行时,T-SQL(MS-SQL Server)需要SAVE | ROLLBACK TRANSACTION。

希望有帮助!