CellBIS-SQL-Abstract
view release on metacpan or search on metacpan
lib/CellBIS/SQL/Abstract.pod view on Meta::CPAN
is_null => 0,
}
};
my $table_attr = {
fk => {
name => 'user_companies_fk',
col_name => 'id_company_users',
table_target => 'users',
col_target => 'id',
attr => {
onupdate => 'cascade',
ondelete => 'cascade'
}
},
charset => 'utf8',
engine => 'innodb',
};
$create_table = $sql_abstract->create_table($table_name, $col_list, $col_attr, $table_attr);
SQL equivalent :
CREATE TABLE IF NOT EXISTS company(
lib/CellBIS/SQL/Abstract.pod view on Meta::CPAN
is_null => 0,
}
};
my $table_attr = {
fk => {
name => 'user_companies_fk',
col_name => 'id_company_users',
table_target => 'users',
col_target => 'id',
attr => {
onupdate => 'cascade',
ondelete => 'cascade'
}
},
charset => 'utf8',
engine => 'innodb',
};
$create_table = $sql_abstract->create_table($table_name, $col_list, $col_attr, $table_attr);
SQL equivalent :
CREATE TABLE IF NOT EXISTS company(
lib/CellBIS/SQL/Abstract.pod view on Meta::CPAN
is_null => 0,
}
};
my $table_attr = {
fk => {
name => 'user_companies_fk',
col_name => 'id_company_users',
table_target => 'users',
col_target => 'id',
attr => {
onupdate => 'cascade',
ondelete => 'cascade'
}
},
charset => 'utf8',
engine => 'innodb',
};
$create_table = $sql_abstract->create_table($table_name, $col_list, $col_attr, $table_attr);
SQL equivalent :
CREATE TABLE IF NOT EXISTS company(
lib/CellBIS/SQL/Abstract/Table.pm view on Meta::CPAN
}
}
return $table_attr;
}
# For Foreign key attribute :
# ------------------------------------------------------------------------
sub fk_attr_validator {
my ($fk_table) = @_;
my $data = '';
my %ondelup = ('cascade' => 'CASCADE', 'null' => 'SET NULL',
'default' => 'SET DEFAULT');
my $ondel = 0;
if (exists $fk_table->{ondelete}) {
if (exists $ondelup{(lc $fk_table->{ondelete})}) {
$ondel = 1;
$data .= 'ON DELETE ' . $ondelup{(lc $fk_table->{ondelete})};
}
}
if (exists $fk_table->{onupdate}) {
lib/CellBIS/SQL/Abstract/Test.pm view on Meta::CPAN
# table construction
@table_info = $self->table_info->$table->$dbtype;
push @table_info,
{
fk => {
name => 'users_roles_id',
col_name => $table_users->id_roles,
table_target => $table_roles->table_name,
col_target => $table_roles->id,
attr => {onupdate => 'cascade', ondelete => 'cascade'}
}
};
$q = $self->abstract->create_table(@table_info);
if (my $dbh = $self->backend->db->query($q)) {
$result->{result} = $dbh->rows;
$result->{code} = 200;
}
return $result;
}
t/03-additional/mariadb/create-table-with-fk.t view on Meta::CPAN
},
'id_company_users' => {type => {name => 'int', size => '11',}, is_null => 0,},
'company_name' => {type => {name => 'varchar', size => '200',}, is_null => 0,}
};
my $table_attr = {
fk => {
name => 'user_company_fk',
col_name => 'id_company_users',
table_target => 'users',
col_target => 'id',
attr => {onupdate => 'cascade', ondelete => 'cascade'}
},
charset => 'utf8',
engine => 'innodb',
};
$create_table
= $sql_abstract->create_table($table_name, $col_list, $col_attr, $table_attr);
my $on_liner = $sql_abstract->to_one_liner($create_table);
is($on_liner, $to_compare, "Query Table has created : \n$create_table\n");
t/03-additional/pg/create-table-with-fk.t view on Meta::CPAN
},
'id_company_users' => {type => {name => 'int', size => '11',}, is_null => 0,},
'company_name' => {type => {name => 'varchar', size => '200',}, is_null => 0,}
};
my $table_attr = {
fk => {
name => 'user_company_fk',
col_name => 'id_company_users',
table_target => 'users',
col_target => 'id',
attr => {onupdate => 'cascade', ondelete => 'cascade'}
},
charset => 'utf8',
engine => 'innodb',
};
$create_table
= $sql_abstract->create_table($table_name, $col_list, $col_attr, $table_attr);
my $on_liner = $sql_abstract->to_one_liner($create_table);
is($on_liner, $to_compare, "Query Table has created : \n$create_table\n");
t/03-additional/sqlite/create-table-with-fk.t view on Meta::CPAN
{type => {name => 'integer'}, is_primarykey => 1, is_autoincre => 1,},
'id_company_users' => {type => {name => 'integer'}, is_null => 0,},
'company_name' => {type => {name => 'varchar', size => '200',}, is_null => 0,}
};
my $table_attr = {
fk => {
name => 'user_company_fk',
col_name => 'id_company_users',
table_target => 'users',
col_target => 'id',
attr => {onupdate => 'cascade', ondelete => 'cascade'}
}
};
$create_table
= $sql_abstract->create_table($table_name, $col_list, $col_attr, $table_attr);
my $on_liner = $sql_abstract->to_one_liner($create_table);
is($on_liner, $to_compare, "Query Table has created : \n$create_table\n");
done_testing();
( run in 1.005 second using v1.01-cache-2.11-cpan-49f99fa48dc )