#!/usr/bin/perl
use strict;
use warnings;

my $line;
my @v;
my @f;
my $N;
my $n;

my ($table) = @ARGV;
if (!defined $table) {
    die "usage: $0 TableName < data.tsv\n";
}

sub getline {
    $line = <STDIN>;
    if (!defined $line) { return undef; }
    chomp($line);
    @v = split /\t/, $line, -1;
    $n = @v;
    return 1;
}

getline() || die "no data";
@f = @v; $N = $n;

while (getline()) {
    if (@v != @f) {
        die "line has wrong number of values, $n != $N:\n  $line";
    }
    my $sql = "INSERT INTO $table ("
      . join(", ", @f) . ") VALUES ("
      . join(", ", map {quote($_)} @v)
      . ");\n";
    print $sql;
}

sub quote {
    my ($v) = @_;
    $v =~ s{'}{''}g;
    return qq{'$v'};
}
