Tôi đang cố kích hoạt cơ sở dữ liệu sqlite đại diện cho một trường học. Tôi có một bảng được gọi là Quản trị viên với giản đồ này:Tạo trình kích hoạt cho cơ sở dữ liệu sqlite ngăn chặn chèn
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)
);
Tôi muốn đảm bảo rằng chỉ có một hiệu trưởng. Tôi đã thử tất cả mọi thứ tôi có thể nghĩ và tôi tiếp tục nhận được lỗi tại các địa điểm khác nhau trong kích hoạt. Người cuối cùng tôi đã thử nói rằng có lỗi gần "NẾU"
sqlite> CREATE TRIGGER onePres
...> BEFORE INSERT ON Administrators
...> BEGIN
...> IF (EXISTS (SELECT * FROM Administration WHERE role = 'Principal'))
...> BEGIN
...> ROLLBACK TRANSACTION;
...> RETURN
...> END;
...> END;
Có ai vui lòng giúp tôi tìm ra những gì tôi đang làm sai không? Cảm ơn!
Số SSN và số điện thoại không có giá trị số; sử dụng chuỗi. –