如何使用Perl约束SQLite数据库字段



我正在使用Perl构建一个SQLite数据库。

这是我到目前为止的代码示例

my $stmt = qq(
  CREATE TABLE PBS_control_data (
    Antibody        TEXT  PRIMARY KEY NOT NULL,
    Raw_data        FLOAT NOT NULL,
    Normalized_data FLOAT NOT NULL
  )
);
my $rv = $dbh->do($stmt);
if ($rv < 0) {
  print "$dbh::errstr";
}
else {
  print "Table created";
}

我在Antibodies字段中有六个项目,我想约束该字段,以便必须输入这六个名称中的一个,以防止错误。

如何做到这一点?

我想你找错地方了。应该使用简单的Perl代码来验证输入到数据库中的数据

可以对列应用CHECK约束并尝试插入用户输入的任何内容,但这将是草率的编程

要让数据库检查一个字段值是否有六个值之一,可以使用check约束,如下所示:

CREATE TABLE MyTable (
   MyField TEXT CHECK(MyField IN ('a', 'b', 'c', 'd', 'e', 'f')),
   [...]
);

最新更新