Spalt werfen und Fehler auf und stoppt In MySQL müsste dies mit einem Trigger für INSERT und UPDATE tun. Wenn also jemand versucht, einen Wert einzugeben, der nicht Ihren Kriterien entspricht, erzeugen Sie ein SIGNAL.
mysql> CREATE TABLE MyTable (
my_datetime DATETIME
);
mysql> DELIMITER ;;
mysql> CREATE TRIGGER MyTable_ins BEFORE INSERT ON MyTable
FOR EACH ROW BEGIN
IF (NOT TIME(NEW.my_datetime) BETWEEN '03:00:00' AND '15:00:00') THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Time does not fall in the range allowed.'
END IF;
END;;
mysql> DELIMITER ;
erhalte ich die Fehlermeldung, wenn versuchen, etwas zu tun, ich sollte nicht:
mysql> INSERT INTO MyTable SET my_datetime = '2017-01-13 18:00:00';
ERROR 1644 (45000): time does not fall in the range allowed
Aber es funktioniert, wenn ich eine Zeit wählen, die erlaubt ist:
mysql> INSERT INTO MyTable SET my_datetime = '2017-01-13 11:00:00';
Query OK, 1 row affected (0.00 sec)
Wie fügen Sie Daten in Ihre Tabelle ein? Ich meine, verwenden Sie und Client-Anwendung oder Sie manuell Daten in Ihre Tabelle mit mysql selbst einfügen? – EhsanT