2016-04-05 8 views
2

Использование Perl DBI, как проверить, если (с учетом имени таблицы и имени столбца) столбец MySQL UNIQUE (имеет ограничение UNIQUE)?Perl DBI MySQL: проверьте, не является ли столбец UNIQUE

+0

Получите больше и лучше ответов, детализируя то, что вы уже пробовали. –

+0

@MartinCowie Как объяснить, что он пытался получить ответы? Имеет смысл спросить людей, что они пробовали, когда они говорят: «мой код не работает, помогите мне его отладить» без включения какого-либо кода, но здесь нет смысла. Вопрос совершенно ясен; загромождая его кучей неудачных попыток решения, просто добавит бесполезный шум. – ThisSuitIsBlackNot

+0

Хотелось бы вам объяснить, что вы хотите сделать с этой информацией? Это поможет нам сформулировать более точный ответ для вас. Кажется, странная вещь, на которой основывается поток программы – Borodin

ответ

2

Эта функция должна возвращать значение true для столбцов с ограничением UNIQUE или 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; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^