Ich benutze SQLite v3, um ein Perl-Skript zu schreiben. Die SQLite-Version ist 3.3.6.Warum bekomme ich einen Syntaxfehler mit DBD :: SQLite, obwohl meine Version von SQLite `CREATE TABLE IF NOT EXISTS 'unterstützt?
Wenn ich sqlite in der Befehlszeile ausführen, funktioniert es. Aber wenn ich die gleiche Sache in Perl zu tun wirft es auf diesen Fehlern
DBD :: SQLite :: db nicht getan: in der Nähe von "NOT": Syntaxfehler (1) an dbdimp.c Linie 268 in Dateizeile 2675.
Dies ist, was ich auf der Konsole folgendes ein:
$ sqlite3 test.db
SQLite version 3.3.6
sqlite> create table if not exists DATA_STATUS_VALUE (TYPE TEXT PRIMARY KEY, Seq INTEGER);
sqlite> .tables AllJobs LOCKSTAT_VALUE test_run12_data
DATA_STATUS_VALUE STATUS_VALUE test_run12_lock
die Version von SQLite ich verwende unterstützt IF NOT EXISTS
, also warum bin ich erhalte eine Fehlermeldung?
Das ist mein Perl-Code:
#!/usr/bin/perl
use DBI;
my $driver = "SQLite";
$database = "test.db";
$dsn = "DBI:$driver:dbname=$database";
$dbh = DBI->connect($dsn, undef, undef, { RaiseError => 1 });
$dbh->do("CREATE TABLE IF NOT EXISTS DATA_STATUS_VALUE (TYPE TEXT PRIMARY KEY, Seq INTEGER);");
Welche Version von SQLite verwendet DBD :: SQLite? 'perl -E'use DBD :: SQLite; sagen $ DBD :: SQLite :: sqlite_version'' – ikegami
DB <3> drucken $ DBD :: SQLite :: sqlite_version 3.1.3 –
gibt es eine Möglichkeit, sqlite-Version per Perl auszuwählen. Ich kann nichts auf dem System installieren –