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

时间:2014-06-26 20:59:34

标签: 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字段中有六个项目,我想约束该字段,以便您必须输入这六个名称中的一个,以防止出错。

如何做到这一点?

2 个答案:

答案 0 :(得分:2)

我认为你在寻找错误的地方。您应该使用简单的Perl代码来验证您输入数据库的数据

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

答案 1 :(得分:1)

要让数据库检查字段值是否具有六个值之一,请使用如下的CHECK约束:

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