1SQL::Translator::SchemaU:s:eCronCsotnrtariinbtu(t3e)d PeSrQlL:D:oTcruamnesnltaattoiro:n:Schema::Constraint(3)
2
3
4
6 SQL::Translator::Schema::Constraint - SQL::Translator constraint object
7
9 use SQL::Translator::Schema::Constraint;
10 my $constraint = SQL::Translator::Schema::Constraint->new(
11 name => 'foo',
12 fields => [ id ],
13 type => PRIMARY_KEY,
14 );
15
17 "SQL::Translator::Schema::Constraint" is the constraint object.
18
20 new
21 Object constructor.
22
23 my $schema = SQL::Translator::Schema::Constraint->new(
24 table => $table, # table to which it belongs
25 type => 'foreign_key', # type of table constraint
26 name => 'fk_phone_id', # name of the constraint
27 fields => 'phone_id', # field in the referring table
28 reference_fields => 'phone_id', # referenced field
29 reference_table => 'phone', # referenced table
30 match_type => 'full', # how to match
31 on_delete => 'cascade', # what to do on deletes
32 on_update => '', # what to do on updates
33 );
34
35 deferrable
36 Get or set whether the constraint is deferrable. If not defined, then
37 returns "1." The argument is evaluated by Perl for True or False, so
38 the following are equivalent:
39
40 $deferrable = $field->deferrable(0);
41 $deferrable = $field->deferrable('');
42 $deferrable = $field->deferrable('0');
43
44 expression
45 Gets and set the expression used in a CHECK constraint.
46
47 my $expression = $constraint->expression('...');
48
49 is_valid
50 Determine whether the constraint is valid or not.
51
52 my $ok = $constraint->is_valid;
53
54 fields
55 Gets and set the fields the constraint is on. Accepts a string, list
56 or arrayref; returns an array or array reference. Will unique the
57 field names and keep them in order by the first occurrence of a field
58 name.
59
60 The fields are returned as Field objects if they exist or as plain
61 names if not. (If you just want the names and want to avoid the Field's
62 overload magic use "field_names").
63
64 Returns undef or an empty list if the constraint has no fields set.
65
66 $constraint->fields('id');
67 $constraint->fields('id', 'name');
68 $constraint->fields( 'id, name' );
69 $constraint->fields( [ 'id', 'name' ] );
70 $constraint->fields( qw[ id name ] );
71
72 my @fields = $constraint->fields;
73
74 field_names
75 Read-only method to return a list or array ref of the field names.
76 Returns undef or an empty list if the constraint has no fields set.
77 Useful if you want to avoid the overload magic of the Field objects
78 returned by the fields method.
79
80 my @names = $constraint->field_names;
81
82 match_type
83 Get or set the constraint's match_type. Only valid values are "full"
84 "partial" and "simple"
85
86 my $match_type = $constraint->match_type('FULL');
87
88 name
89 Get or set the constraint's name.
90
91 my $name = $constraint->name('foo');
92
93 options
94 Gets or adds to the constraints's options (e.g., "INITIALLY
95 IMMEDIATE"). Returns an array or array reference.
96
97 $constraint->options('NORELY');
98 my @options = $constraint->options;
99
100 on_delete
101 Get or set the constraint's "on delete" action.
102
103 my $action = $constraint->on_delete('cascade');
104
105 on_update
106 Get or set the constraint's "on update" action.
107
108 my $action = $constraint->on_update('no action');
109
110 reference_fields
111 Gets and set the fields in the referred table. Accepts a string, list
112 or arrayref; returns an array or array reference.
113
114 $constraint->reference_fields('id');
115 $constraint->reference_fields('id', 'name');
116 $constraint->reference_fields( 'id, name' );
117 $constraint->reference_fields( [ 'id', 'name' ] );
118 $constraint->reference_fields( qw[ id name ] );
119
120 my @reference_fields = $constraint->reference_fields;
121
122 reference_table
123 Get or set the table referred to by the constraint.
124
125 my $reference_table = $constraint->reference_table('foo');
126
127 table
128 Get or set the constraint's table object.
129
130 my $table = $field->table;
131
132 type
133 Get or set the constraint's type.
134
135 my $type = $constraint->type( PRIMARY_KEY );
136
137 equals
138 Determines if this constraint is the same as another
139
140 my $isIdentical = $constraint1->equals( $constraint2 );
141
143 Ken Youens-Clark <kclark@cpan.org>.
144
145
146
147perl v5.36.0 2023-02S-Q2L7::Translator::Schema::Constraint(3)