2016-08-23 10 views
0

時間単位の作業(月曜日から金曜日の午前9時から午後5時まで)で挿入を実行できるトリガーを作成します。私は現在、このSQLトリガーが機能しません(スケジュールに基づいて)

CREATE DEFINER=`root`@`localhost` TRIGGER `noWorkHour` 
BEFORE INSERT ON `empleado` FOR EACH ROW 
BEGIN 

    IF DAYOFWEEK(NOW()) BETWEEN (2, 6) 
    AND CURTIME() BETWEEN '09:00:00' AND '17:00:00' 
    THEN 
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Solo se pueden ingresar en horario de trabajo'; 
    END IF; 
END 

を持っている。しかし、私は何かを挿入しようとすると、それは示しています

/* Error de SQL (1241): Operand should contain 1 column(s) */ 
/* Affected rows: 0 Filas encontradas: 0 Advertencias: 0 Duración para 0 of 1 query: 0,000 sec. */ 

私はこのためにMariaDBを使用しています。

+0

は、なぜあなたは2 'BETWEEN'述語のための別の構文を使用していますか? – mustaccio

+0

Lol、ありがとう!それはそれだった。あなたが眠くなり過ぎてすべてを混乱させる時があります –

答えて

0

@mustaccioのコメントの後、私はトリガーではなく他のものを単独で乱していました。

トリガは、次のようになります:

CREATE DEFINER=`root`@`localhost` TRIGGER `noWorkHour` BEFORE INSERT ON `empleado` FOR EACH ROW BEGIN 


IF DAYOFWEEK(NOW()) NOT BETWEEN 2 AND 6 AND CURTIME() NOT BETWEEN '09:00:00' AND '16:00:00' THEN 
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Solo se pueden ingresar en horario de trabajo'; 

END IF; 
END 
関連する問題