FabForce::DBDesigner4::SQL::Utils - some utility functions for SQL generation


FabForce-DBDesigner4 documentation Contained in the FabForce-DBDesigner4 distribution.

Index


Code Index:

NAME

Top

FabForce::DBDesigner4::SQL::Utils

VERSION

Top

version 0.306

SYNOPSIS

Top

  use FabForce::DBDesigner4::SQL::Utils qw(get_foreing_keys);

DESCRIPTION

Top

As each database system has its own syntax, it is important to provide functions for each system.

NAME

Top

FabForce::DBDesigner4::SQL::Utils - some utility functions for SQL generation

METHODS

Top

get_foreign_keys

AUTHOR

Top

Renee Baecker, <module@renee-baecker.de>

COPYRIGHT AND LICENSE

Top

AUTHOR

Top

Renee Baecker <module@renee-baecker.de>

COPYRIGHT AND LICENSE

Top


FabForce-DBDesigner4 documentation Contained in the FabForce-DBDesigner4 distribution.
package FabForce::DBDesigner4::SQL::Utils;

use strict;
use warnings;

use base 'Exporter';

our @EXPORT_OK = qw( get_foreign_keys );

our $VERSION     = '0.01';

sub get_foreign_keys{
    my @rels = @_;
    
    my %relations;
    my @foreignKeys;
    
    for my $rel(@rels){
        next unless $rel;
        my $start           = (split(/\./,$rel->[1]))[1];
        my ($table,$target) =  split(/\./,$rel->[2]);
        push(@{$relations{$table}},[$start,$target]);
    }

    for my $key(keys(%relations)){
        my $string  = 'FOREIGN KEY ('.join(',',map{$_->[0]}@{$relations{$key}}).')';
           $string .= " REFERENCES $key(".join(',',map{$_->[1]}@{$relations{$key}}).')';
        push(@foreignKeys,$string)
    }

    return @foreignKeys;
}# getForeignKeys

1;




__END__