|
||||||||||||||||||||||||||||||
| 1 2 次のページ | ||||||||||||||||||||||||||||||
| 集合演算 | ||||||||||||||||||||||||||||||
|
Oracle、PostgreSQLともに集合演算の機能があります。UNION句、INTERSECT句は両方でサポートされるので変更の必要はありません。しかし、OracleのMINUS句は、PostgreSQLでは等価なEXCEPT句に変更する必要があります。 OracleでのMINUS句の例 |
||||||||||||||||||||||||||||||
SELECT 担当者ID, 担当者名
|
||||||||||||||||||||||||||||||
|
PostgreSQLでのEXCEPT句の例 |
||||||||||||||||||||||||||||||
SELECT 担当者ID, 担当者名
|
||||||||||||||||||||||||||||||
| 図11は実行結果です。 |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
図11:EXCEPT句の実行結果 |
||||||||||||||||||||||||||||||
| 更新のための行ロック | ||||||||||||||||||||||||||||||
|
Oracle、PostgreSQLともに、SELECT〜FOR UPDATEによる行ロックの機能をサポートしているので変更の必要はありません。FOR UPDATE句を使って更新用に特定の行をロックすることで、現行のトランザクションが終了するまでは、ロックした行が他のトランザクションによって更新されたり削除されたりすることがなくなります。もちろん、「SELECT〜FOR UPDATE」を実行したときに、目的とする行のロックがすでに他のトランザクションに獲得されていることもあります。そうした場合には、すでにロックを獲得しているトランザクションの終了を待ってロックを獲得します。 Oracleには、そうした場合にロックを獲得しているトランザクションの終了を待たずに制御を戻す「NOWAITモード」があります。しかしPostgreSQLには、このNOWAITに相当する機能はありません。目的とする行のロックがすでに他のトランザクションに取られているとPostgreSQLでは必ずウェイトが発生しますので、使うときにはデッドロックにならないように注意しましょう。 |
||||||||||||||||||||||||||||||
| パーティション表の移行 | ||||||||||||||||||||||||||||||
|
Oracleには、大きな表や索引をいくつかの「パーティション」に分けて管理できる機能があります。次の例は、売上データ表が非常に大きいために年度別にパーティショニングしている際に、4月分のみのデータを抽出するSELECT文です。 |
||||||||||||||||||||||||||||||
SELECT * FROM 売上データ
|
||||||||||||||||||||||||||||||
| PostgreSQLには、大きな表や索引をパーティショニングして保持できる機能はありませんが、SQL文の移行に際しては、単純にPARTITION句を削除してパーティションの指定を無視することで移行が可能です。 |
||||||||||||||||||||||||||||||
SELECT * FROM 売上データ
|
||||||||||||||||||||||||||||||
| ROWIDの移行 | ||||||||||||||||||||||||||||||
|
OracleのROWIDに近いものとして、PostgreSQLにはOIDが存在します。しかし、OIDは基本的に、システムテーブルのプライマリキーとしての使用を前提にしています。OIDの最大値が十分に大きくないため、ユーザテーブルにおけるプライマリキーとしての使用は推奨されていませんので注意してください。 |
||||||||||||||||||||||||||||||
| 分散問い合わせの移行 | ||||||||||||||||||||||||||||||
|
PostgreSQL本体には分散問い合わせの機能はありませんが、contrib/dblinkフォルダに同等の機能を持つdblink()関数がありますので、興味のある方は試してみるとよいでしょう。 |
||||||||||||||||||||||||||||||
|
1 2 次のページ |
||||||||||||||||||||||||||||||
|
書籍紹介 まるごと PostgreSQL! Vol.1
日本での市場シェアNo.1(オープンソースRDBMS部門)データベースソフトPostgreSQLの最新情報を、開発メンバーを含む豪華執筆陣が多面的かつ詳細に解説します。PostgreSQL用クラスタリング/レプリケーションソフト、PostgreSQL⇔Oracle移行、PostgreSQLによる大規模サイト構築法、新バージョンPostgreSQL 8.0先行レビュー、PostgreSQL用.NETデータプロバイダ等々、他では読めない貴重な記事が満載です。発売日:2004/12/08発売 定価:\1,890(本体 \1,800+税) |
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||


