我正在使用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
字段中有六个项目,我想约束该字段,以便您必须输入这六个名称中的一个,以防止出错。
如何做到这一点?
答案 0 :(得分:2)
我认为你在寻找错误的地方。您应该使用简单的Perl代码来验证您输入数据库的数据
你可以对列应用CHECK
约束,只是尝试插入用户输入的内容,但这将是草率的编程
答案 1 :(得分:1)
要让数据库检查字段值是否具有六个值之一,请使用如下的CHECK约束:
CREATE TABLE MyTable (
MyField TEXT CHECK(MyField IN ('a', 'b', 'c', 'd', 'e', 'f')),
[...]
);