CellBIS-SQL-Abstract

 view release on metacpan or  search on metacpan

t/03-additional/sqlite/create-table-with-fk.t  view on Meta::CPAN

#!/usr/bin/perl
use strict;
use warnings;
use Test::More;
use CellBIS::SQL::Abstract;

my $sql_abstract = CellBIS::SQL::Abstract->new(db_type => 'sqlite');
my $create_table = '';
my $to_compare
  = 'CREATE TABLE IF NOT EXISTS company( '
  . 'id_company INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, '
  . 'id_company_users INTEGER NOT NULL, '
  . 'company_name VARCHAR NOT NULL, '
  . 'CONSTRAINT user_company_fk FOREIGN KEY (id_company_users) REFERENCES users (id) '
  . 'ON DELETE CASCADE ON UPDATE CASCADE )';

my $table_name = 'company';
my $col_list   = ['id_company', 'id_company_users', 'company_name',];
my $col_attr   = {
  'id_company' =>
    {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 0.729 second using v1.01-cache-2.11-cpan-5735350b133 )