PostgreSQL 8.1 中文文档(PostgreSQL 中国 制作) | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 30. ecpg - 在 C 里嵌入 SQL | Fast Forward | Next |
前面小节显示的 SQL 语句都是在当前连接执行,也就是说,最近打开的那个。 如果一个应用需要管理多个连接,那么有两个办法处理这个问题。
第一个选项是为每个 SQL 语句明确地选择一个连接,比如
EXEC SQL AT connection-name SELECT ...;
这个选项特别适用于需要以混和地顺序使用多个连接地应用。
如果你的应用使用多线程执行,那么他们不能并发地共享一个连接。 你必须要么明确地控制对连接地访问(使用互斥)要么给每个线程使用一个连接。 如果每个线程使用自己的连接,那么你就需要使用 AT 子句来声明该线程使用的是那个连接。
第二个选项是执行一个语句来切换当前连接。这个语句是:
EXEC SQL SET CONNECTION connection-name;
这个选项在多条语句都需要在同一个连接上执行的时候特别方便。它是线程不安全的。