0

私はデータベースの世界から始めています。SQLite3 のデータベースからデータを取得する Perl スクリプトを作成しようとしています。私がやりたい最初のステップは、既存のテーブルを削除してから、新しいデータで別のテーブルを作成することです。私のコードは次のとおりです。

#!/usr/bin/perl

use DBI;
use strict;

my $driver   = "SQLite"; 
my $database = "/media/My\ Passport/Sources/M5nr_db";
my $dsn = "DBI:$driver:dbname=$database";
my $userid = "";
my $password = "";
my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 }) 
                      or die $DBI::errstr;

print "Opened database successfully\n";
my $stmt = qq(DROP TABLE IF EXISTS matching_prot );
my $rv = $dbh->do($stmt);
my $stmt = qq(CREATE TABLE matching_prot
    (Seq_ID TEXT,
     M5 TEXT,
     Identity REAL
     Evalue REAL
     Bit_score INT););
my $rv = $dbh->do($stmt);

$dbh->disconnect();

しかし、次のエラーが表示されます。

Opened database successfully
DBD::SQLite::db do failed: near "EXISTS": syntax error(1) at dbdimp.c line 269 at use_database.pl line 16.
DBD::SQLite::db do failed: near "EXISTS": syntax error(1) at dbdimp.c line 269 at use_database.pl line 16.

sqlite3 コマンドラインでは問題なく動作します。何か案は?

では、よろしくお願いします。

4

1 に答える 1

0

2 番目を削除します。

     Bit_score INT););
于 2016-04-21T04:16:53.153 に答える