IF NOT EXISTS (SELECT *
FROM ENTITIES
WHERE ID = $MaxEntityId)
INSERT INTO ENTITIES (ID,TYPE,NAME)
VALUES ($MaxEntityID, '$type', '$name')
####
IF NOT EXISTS (SELECT *
FROM ENTITIES
WHERE TYPE = $type
AND NAME = $name)
INSERT INTO ENTITIES (TYPE, NAME)
VALUES ('$type', '$name')
####
################ NOTE: UNTESTED CODE
use strict;
use warnings;
use Win32::ODBC;
my $dB = new Win32::ODBC("DSN=name;UID=user;PWD=password;");
die 'Cannot connect to dB.' if !$dB;
my %tests = ( COUNTRY => 'UNITED_STATES',
PERSON => 'FRED',
PERSON => 'JOE' );
my ($type, $name);
while (($type, $name) = each %tests) {
my $query = qq(
IF NOT EXISTS ( SELECT *
FROM ENTITIES
WHERE TYPE = '$type'
AND NAME = '$name' )
INSERT INTO ENTITIES (TYPE, NAME)
VALUES ('$type', '$name')
);
my $rc = $dB->Sql($query);
die "Query failed: $query ".Win32::ODBC::Error() if $rc;
}