SQLアンチパターン読書会 第10章 サーティワンフレーバー
- 16. ドメイン(DOMAIN)の
実装状況 ふじもと調べ
PostgreSQL
CREATE DOMAINコマンドで実現。DEFAULT句、NOT NULL制約、
CHECK制約などを定義する。
CREATE DOMAIN name [ AS ] data_type
[ COLLATE collation ]
[ DEFAULT expression ]
[ constraint [ ... ] ]
constraintは、次のようになります。
[ CONSTRAINT constraint_name ]
{ NOT NULL | NULL | CHECK (expression) }
※ COLLATEは9.1から、CHECKは7.4から
MySQL / Oracle / SQL Server / DB2 UDB
なし。
16
- 17. ユーザー定義型( UDT)の
実装状況 ふじもと調べ
PostgreSQL
CREATE TYPEコマンドで実現。定義が面倒。
MySQL
なし。
Oracle
CREATE TYPE文とCREATE TYPE BODY文を使用する。CREATE TYPE BODY文でPL/
SQLを使用して定義する。
SQL Server
CREATE TYPEステートメントを使用する。C#やVBの.NETプログラミング言語で、UDT の作
成の仕様を満たすクラスまたは構造体を作成する。
DB2 UDB
ユーザー定義の構造化タイプ。CREATE DISTINCT TYPEステートメントを使用する。既存のデ
ータ・タイプを基に定義する。UDF(ユーザー定義関数)でUDTの振る舞いを定義する。
17