create table students
(
record_book numeric( 5 ) NOT NULL,
name text NOT NULL,
doc_ser numeric( 4 ),
doc_num numeric( 6 ),
PRIMARY KEY ( record_book )
);
create table progress
(
record_book numeric( 5 ) NOT NULL,
subject text NOT NULL,
acad_year text NOT NULL,
term numeric (1) NOT NULL CHECK ( term = 1 OR term = 2 ),
mark numeric( 1 ) NOT NULL CHECK ( mark >=3 AND mark <=5 ) DEFAULT 5,
foreign key ( record_book )
references students ( record_book )
on delete cascade
on update cascade
);
INSERT INTO students ( record_book, name, doc_ser, doc_num )
VALUES ( 12300, 'Иванов Иван Иванович', 0402, 543281 );
ALTER TABLE progress
add column test_form varchar NOT NULL;
ALTER TABLE progress
add check ((test_form = 'экзамен' and mark IN (3, 4, 5))
OR (test_form = 'зачет' and mark IN (0, 1))
);
--ВОТ ТУТ ВЫДАЕТ ОШИБКУ
INSERT INTO progress (record_book, subject, acad_year, test_form, term, mark)
VALUES (12300, 'информатика', '1', 'зачет', 1, 5);