Как вставить данные, используя процедуру с ограничениями - PullRequest
1 голос
/ 27 октября 2019

У меня есть таблица, в которую я хочу добавить запланированные данные. Это включает в себя код в виде ПК и комнату с датой. Я хочу, чтобы ограничение включало только возможность добавления новой строки данных с кодовой комнатой и датой, которая должна проходить как минимум через месяц и которая должна быть запланирована только на рабочие дни.

Я пробовал упрощенные утверждения для вставки данных, и есть много способов сделать это из того, что я нашел. Но я думаю, что я нахожусь в зоне черной дыры для этого, где все, что я нахожу, я не понимаю информацию, которая мне дана. Если бы вы могли помочь понять, что я должен делать, чтобы не застрять в будущем.

CREATE TABLE session(
code CHAR(4) NOT NULL, 
date DATE NOT NULL, 
room VARCHAR(30) NOT NULL, 
CONSTRAINT pri_session PRIMARY KEY (code));

INSERT INTO session(code, date, room)
    VALUES('202B', '2020.05.03', 303);

DELIMITER &&

CREATE PROCEDURE assign_schedual (IN code char(4), IN date DATE, IN room VARCHAR(30))
    BEGIN 
        DECLARE c CURSOR FOR SELECT code FROM session;

        OPEN c;

        CLOSE c;

    END&&

DELIMITER ;

Я ожидаю, что возможность использования этой процедуры обеспечит, чтобы на даты, на которые были даны ответы, приходилось больше месяца и только на рабочие дни.

Пример данных выборки: 403B, 2019.10.02, 303

Запрещает вставку из-за того, что не менее чем через месяц и в выходных.

1 Ответ

0 голосов
/ 27 октября 2019

Это то, что вы хотите?

   Begin

     IIF(SELECT COUNT(*) FROM ( 
      SELECT 
      code FROM 
     session where
     sysdate() -date >30 and  
      DAYNAME(date) not like 'S%') >1)
      THEN
     ..... 
     ELSE  
     //discard data.. 
     End IF
     End
...