我正在尝试将值插入数据库,我的数据库表如图所示
$stmt = qq(CREATE TABLE IF NOT EXISTS INFO
(
DeviceName TEXT NOT NULL,
CurrentStatus INT NOT NULL,
ReportTime TEXT,
OldStatus INT NOT NULL,
OldReportTime TEXT ););
Run Code Online (Sandbox Code Playgroud)
在插入db之前,我正在为DeviceName列创建一个唯一索引,这样每当一个新条目进入具有相同名称的db时,它就不会被插入而是被替换,
$stmt = qq(CREATE UNIQUE INDEX ree ON INFO(DeviceName));
$stmt = qq(INSERT OR REPLACE INTO INFO(DeviceName, CurrentStatus,ReportTime,OldStatus,OldReportTime)
VALUES ('$FQDN', $currentstatus, '$currenttime', $oldstatus, '$oldtime' ););
my $rv = $dbh->do($stmt) or die $DBI::errstr;
Run Code Online (Sandbox Code Playgroud)
这些是我添加的几行,用于创建唯一索引并在下一个实体使用相同的DeviceName输入时替换.但是,虽然我遵循了这一点,但数据库仍然会多次存储相同的DeviceName.
#!/usr/bin/perl
use DBI;
use strict;
my $FQDN= "bubbly.bth.se";
my $currenttime = "Sat Dec 9 02:07:31 2017";
my $oldtime = "Sat Dec …Run Code Online (Sandbox Code Playgroud) 我想找出SQLITE数据库表中的行数,我知道我可以查询使用SELECT COUNT(*) FROM TABLENAME;
但我想使用perl代码获取计数并将其存储到变量中?我可以使用以下代码
my $stmt = qq(SELECT COUNT(*) AS $NUMBEROFROWS FROM TABLENAME)
$rv = $dbh->do($stmt);
Run Code Online (Sandbox Code Playgroud)
要么
my $stmt = qq(SELECT COUNT(*) FROM TABLENAME
$NUMBEROFROWS = COUNT(*) );
$rv = $dbh->do($stmt);
Run Code Online (Sandbox Code Playgroud)
请建议我如何计算SQLITE数据库表中的行数并将值存储到变量中?
TIA