dbi::mysql: wie Attribute einer Tabelle ermitteln?

13/03/2008 - 15:53 von Jan Schmidt | Report spam
Hallo NG,

wie kann ich ermitteln, ob ein Feld Primàr-Key ist?

Ich habe bisher nur NULLABLE und NAME gefunden, was mir hier aber nicht
weiterhilft.

mysql> describe Zitate;
+--+--++--++-+
| Field | Type | Null | Key | Default | Extra |
+--+--++--++-+
| ID | mediumint(8) unsigned | | PRI | 0 | auto_increment |

Gruß,
jan
 

Lesen sie die antworten

#1 Elmar Athmer
13/03/2008 - 23:31 | Warnen spam
Hallo

wie kann ich ermitteln, ob ein Feld Primàr-Key ist?



Vielleicht verstehe ich dich falsch, aber eigentlich liegt die Lösung doch
auf der Hand, du hast ja selber schon das describe hier gepostet:

mysql> describe Zitate;
+--+--++--++-+
| Field | Type | Null | Key | Default | Extra |
+--+--++--++-+
| ID | mediumint(8) unsigned | | PRI | 0 | auto_increment |



Im Feld Key steht doch schon PRI für Primarykey, ist es nicht das was du
suchst?

Auslesen geht z.B. so:

#!/usr/bin/perl

use DBI;
use strict;
use warnings;

my $dbh;
my $rows;
my @primary;
my @unique;

$dbh = DBI->connect("dbi:mysql:wgkasse", "root", "");
$rows = $dbh->selectall_arrayref("describe user") or die "schit";

foreach my $row (@$rows) {
if(@$row[3] eq "PRI") {
push(@primary, @$row[0]);
}
elsif(@$row[3] eq "UNI") {
push(@unique, @$row[0]);
}
}

print "Primàrschlüssel: ", join(", ", @primary), "";
print "Eindeutige Schlüssel: ", join(", ", @unique), "";


Aber keine Garantie für den Code, ich geh gerade erst meine ersten
Perlschritte...


Gruß
Elmar

Ähnliche fragen