sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #74207
Re: mysql import af komma separeret fil
Kristian Nørgaard <kristian@xxxxxxxxxxxxxxxxxxx> writes:
> Hvordan får jeg det lettest importeret det til en mysql database?
> Findes der nogle "tools" eller skal jeg til at scripte mig ud af det?
Jeg har ofte scriptet mig ud af det.
Jeg plejer ofte at have nogle smådeltaljer der ville gøre det svært at
bruge et generelt værktøj. Hvis dine data er pæne og ikke indeholder
seperatortegnet er det også ret let. I stedet for at pille med at
forbinde sig til databasen genererer jeg ofte SQL INSERT's i et
perlscript jeg bare pipper ind i mysql.
Altså noget ala:
#!/usr/bin/perl
my $table = "mytable";
my %data;
while (<>) {
my @F = split /;/;
$field = shift @F;
$data{$field} = \@F;
}
while (@{$date{$field}) {
my $sql = "INSERT INTO $table SET ";
$sql .= $_=" . shift $data{$_} . ", " for keys %data;
substr $sql, -2, 2, ";\n";
print $sql;
}
__END__
Det er lidt sværre fordi dine data 'vender forkert'. Ovenstående
virker også kun hvis det kun er tal. Ellers skal man lige få sat
quotes rundt om værdien.
--
Peter Makholm | If you can't do any damage as root, are you still
peter@xxxxxxxxxxx | really root?
http://hacking.dk | -- Derek Gladding about SELinux
References