Perl DBI MySQL:检查列是否为UNIQUE

时间:2016-04-05 12:24:49

标签: mysql perl dbi

使用Perl DBI,如何检查(给定表名和列名)MySQL列是UNIQUE(具有UNIQUE约束)?

1 个答案:

答案 0 :(得分:2)

对于具有UNIQUE约束的列,此函数应返回true,否则返回false。

输入值是DBI(mysql)对象,表名和列名。

sub check_uniq {
    my ($dbh, $table, $column) = @_;
    $table =~ s/\`//;
    $table = '`' . $table . '`';
    my $sth = $dbh->prepare('SHOW INDEX FROM ' . $table);
    $sth->execute();
    while (my $row = $sth->fetchrow_hashref) {
        if (($row->{Column_name} eq $column) && (!$row->{Non_unique})) {
            return 1;
        }
    }
    return 0;
}