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 )