使用Perl DBI,如何检查(给定表名和列名)MySQL列是UNIQUE(具有UNIQUE约束)?
答案 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;
}