2013-08-04 35 views
0

我有一個車輛預訂系統。由於某些原因,我有問題,保留重疊。有沒有辦法在mysql中將範圍標記爲唯一?是否可以在MySQL中識別唯一的範圍?

所以,如果我在數據庫中具有 vehicle_id = 10 開始= '2013年6月1日10:00:00' 端= '2013年6月10日10:00:00' 以下記錄

如果我試圖爲同一輛車添加保留,並且在該範圍內,我需要不允許發生這種情況並返回重複錯誤或某種類型的錯誤。

這可能是MySQL嗎?

感謝

+0

我認爲觸發器可能會對你有所幫助,但我對它們並不瞭解。你應該做一些研究。 –

+0

有沒有聲明的方式來做到這一點。你需要寫一些觸發器。 –

回答

0

只要運行一個SQL查詢尋找的細節,你即將進入即

select something from reservations where vehicle_id = 10 and begin ='dateFrom' and end = 'dateTo' 

如果這回來了一個記錄,則不允許插入重複。

如果這不是你所追求的,請澄清你的問題。

+0

這是我目前的,但有一些奇怪的是造成重複的地方,我不知道在哪裏。我試圖防止發生在數據庫級別而不是在客戶端級別。 – Jaylen

+0

'='似乎並不是正確的測試.. – Ben

+0

@Ben - 沒有更多的信息在OP中,很難說這裏是什麼。 – webnoob

0
select vehicle_id from reservations where vehicle_id = 10 
     AND vehicle_id NOT IN (select vehicle_id from reservations WHERE '$yourDateTocheck' BETWEEN `begin` and `end`) 
+0

這與前面的答案是一樣的想法。但我需要在MySQL級別處理它,因爲我不確定是什麼導致了這個問題,因爲我確實有一個查詢來檢查插入之前的現有記錄,但是不清楚的事情正在發生。 – Jaylen

+0

已編輯回答。 –

+0

但它仍然是一樣的想法「在將數據插入表之前,我將不得不運行查詢,這裏的問題是我不確定在表中插入數據是什麼,我需要知道MySQL是否可以處理這樣,我可以看到在創建此問題的腳本上顯示的錯誤。 – Jaylen

相關問題