我正在使用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')),
[...]
);