Class: Rubeus::Jdbc::ForeignKey

Inherits:
TableElement show all
Defined in:
lib/rubeus/jdbc/foreign_key.rb

Constant Summary collapse

ATTR_NAMES =
  1. PKTABLE_CAT String => インポートされた主キーテーブルカタログ (null の可能性がある)

  2. PKTABLE_SCHEM String => インポートされた主キーテーブルスキーマ (null の可能性がある)

  3. PKTABLE_NAME String => インポートされた主キーテーブル名

  4. PKCOLUMN_NAME String => インポートされた主キー列名

  5. FKTABLE_CAT String => 外部キーテーブルカタログ (null の可能性がある)

  6. FKTABLE_SCHEM String => 外部キーテーブルスキーマ (null の可能性がある)

  7. FKTABLE_NAME String => 外部キーテーブル名

  8. FKCOLUMN_NAME String => 外部キー列名

  9. KEY_SEQ short => 外部キー中の連番

  10. UPDATE_RULE short => 主キーが更新されるときに、外部キーに起こる内容は次のとおりである

    * importedNoAction - 主キーがインポートされたら、更新できない
    * importedKeyCascade - 主キーの更新に合致するように、インポートされたキーを変更する
    * importedKeySetNull - インポートされたキーの主キーが更新されたら、NULL に変更する
    * importedKeySetDefault - インポートされたキーの主キーが更新されたら、デフォルト値に変更する
    * importedKeyRestrict - importedKeyNoAction と同じ (ODBC 2.x との互換性のため)
    
  11. DELETE_RULE short => 主キーが削除されると、外部キーに起こる内容は次のとおりである

    * importedKeyNoAction - 主キーがインポートされたら、削除できない
    * importedKeyCascade - 削除されたキーをインポートする行を、削除する
    * importedKeySetNull - インポートされたキーの主キーが削除されたら、NULL に変更する
    * importedKeyRestrict - importedKeyNoAction と同じ (ODBC 2.x との互換性のため)
    * importedKeySetDefault - インポートされたキーの主キーが削除されたら、デフォルト値に変更する
    
  12. FK_NAME String => 外部キー名 (null の可能性がある)

  13. PK_NAME String => 主キー名 (null の可能性がある)

  14. DEFERRABILITY short => 外部キーの制限の評価はコミットまで延期できる

    * importedKeyInitiallyDeferred - 定義については SQL92 を参照
    * importedKeyInitiallyImmediate - 定義については SQL92 を参照
    * importedKeyNotDeferrable - 定義については SQL92 を参照
    

see also: java.sun.com/javase/ja/6/docs/ja/api/java/sql/DatabaseMetaData.html#getExportedKeys(java.lang.String,%20java.lang.String,%20java.lang.String) java.sun.com/javase/ja/6/docs/ja/api/java/sql/DatabaseMetaData.html#getImportedKeys(java.lang.String,%20java.lang.String,%20java.lang.String)

[:pktable_cat, :pktable_schem, :pktable_name, # :pkcolumn_name,
:fktable_cat, :fktable_schem, :fktable_name, # :fkcolumn_name,
:key_seq, :update_rule, :delete_rule, :fk_name, :pk_name, :deferrability]

Instance Attribute Summary collapse

Attributes inherited from TableElement

#table

Attributes inherited from MetaElement

#jdbc_info, #meta_data, #options

Instance Method Summary collapse

Methods inherited from TableElement

#initialize

Methods inherited from MetaElement

#initialize

Constructor Details

This class inherits a constructor from Rubeus::Jdbc::TableElement

Instance Attribute Details

#fkcolumn_namesObject

Returns the value of attribute fkcolumn_names.



41
42
43
# File 'lib/rubeus/jdbc/foreign_key.rb', line 41

def fkcolumn_names
  @fkcolumn_names
end

#fktableObject

Returns the value of attribute fktable.



42
43
44
# File 'lib/rubeus/jdbc/foreign_key.rb', line 42

def fktable
  @fktable
end

#pkcolumn_namesObject

Returns the value of attribute pkcolumn_names.



41
42
43
# File 'lib/rubeus/jdbc/foreign_key.rb', line 41

def pkcolumn_names
  @pkcolumn_names
end

#pktableObject

Returns the value of attribute pktable.



42
43
44
# File 'lib/rubeus/jdbc/foreign_key.rb', line 42

def pktable
  @pktable
end

Instance Method Details

#fkcolumnsObject



62
63
64
# File 'lib/rubeus/jdbc/foreign_key.rb', line 62

def fkcolumns
  @fkcolumns ||= fkcolumn_names.map{|name| fktable.columns[name]}
end

#inspectObject



44
45
46
47
# File 'lib/rubeus/jdbc/foreign_key.rb', line 44

def inspect
  "#<#{self.class.name} #{name} #{fktable.name}(%s)=>#{pktable.name}(%s)>" %
    [fkcolumn_names.join(','), pkcolumn_names.join(',')]
end

#lengthObject Also known as: size



57
58
59
# File 'lib/rubeus/jdbc/foreign_key.rb', line 57

def length
  pkcolumn_names.length
end

#nameObject



49
50
51
# File 'lib/rubeus/jdbc/foreign_key.rb', line 49

def name
  fk_name.send(options[:name_case] || :to_s)
end

#pkcolumnsObject



66
67
68
# File 'lib/rubeus/jdbc/foreign_key.rb', line 66

def pkcolumns
  @pkcolumns ||= pkcolumn_names.map{|name| pktable.columns[name]}
end

#pretty_print_instance_variablesObject



53
54
55
# File 'lib/rubeus/jdbc/foreign_key.rb', line 53

def pretty_print_instance_variables
  super - [:@fktable, :@pktable]
end