【发布时间】:2013-04-13 02:16:36
【问题描述】:
我正在尝试为代表学校的 sqlite 数据库创建触发器。我有一个名为 Administrators 的表,其架构如下:
CREATE TABLE Administrators(
ssn INT CHECK(ssn > 100000000),
lName CHAR(20),
fName CHAR(10),
gender CHAR(1) CHECK(gender IN('F','M')),
dob DATE,
address CHAR(100),
phone INT CHECK(phone > 1000000000),
role CHAR(20) CHECK(role IN('Principal','Vice Principal','Dean')),
PRIMARY KEY(ssn)
);
我想确保只有一个委托人。我已经尝试了所有我能想到的方法,并且在触发器的各个位置不断出现错误。我试过的最后一个说“IF”附近有一个错误
sqlite> CREATE TRIGGER onePres
...> BEFORE INSERT ON Administrators
...> BEGIN
...> IF (EXISTS (SELECT * FROM Administration WHERE role = 'Principal'))
...> BEGIN
...> ROLLBACK TRANSACTION;
...> RETURN
...> END;
...> END;
谁能帮我弄清楚我做错了什么? 谢谢!
【问题讨论】:
-
SSN 和电话号码没有数值;使用字符串。
标签: sql database triggers sqlite