2017-03-24 10 views
0

日が日曜日の場合、挿入値を避ける方法を知りたいです。それは可能ですか?MySQLの日がXの場合、データの挿入を避けるにはどうすればいいですか?

私はこのテーブルを持っている:

Medical_Appointment 
    (
      ID INT AUTO_INCREMENT NOT NULL, 
      Appointment_Day DATE NOT NULL, 
      Start_Time TIME NOT NULL, 
      Patient_ID INT NOT NULL, 
      Service_ID INT NOT NULL, 
      PRIMARY KEY(ID) 
    ) 
ENGINE = INNODB; 

そして

例えば
Service 
(
     ID INT NOT NULL AUTO_INCREMENT, 
     Name VARCHAR(30) NOT NULL, 
     Duration VARCHAR(6) NOT NULL, 
     PRIMARY KEY(ID) 
) 
ENGINE = INNODB; 

INSERT INTO Medical_Appointment VALUES(NULL, 2017-26-03, 10:00, 1, 2) 

が、私は次のクエリを持っている日付値の日を取得するには:

SELECT DAYNAME(Appointment_Day) AS `Day` 
    FROM Medical_Appointment 
    WHERE ID = 2; 

誰かが私を助けることができますか?

+1

[BEFORE INSERT](https://dev.mysql.com/doc/refman/5.7/en/create-trigger.html)トリガーを試すことができます。 – McNets

+0

明確にするために、Appointment_Dayが日曜日であるかどうかに基づいてサービスに詳細を挿入しますか? – toonice

答えて

0

TRY -

INSERT INTO Medical_Appointment 
SELECT NULL, 
     2017-26-03, 
     10:00, 
     1, 
     2 
FROM tblService 
WHERE DAYNAME(2017-26-03) <> "Sunday" 
LIMIT 1; 

注:FROMとtblServiceを使用する必要はありませんが、あなたはそれに少なくとも1つのレコードを持つテーブルでから使用する必要があるでしょう。

注:LIMIT 1を使用しない場合、MySQLはtblServiceにレコードがある回数だけ値を挿入しようとします。

関連する問題