2012-11-29 31 views
1

簡而言之,我正在製作預訂應用程序。預訂ID需要從10000開始,每增加一個新預訂。CakePHP:根據數據庫表中的最後一個值正確遞增(檢查正確的數字庫)

我已經開始編寫一個方法來生成此預訂號碼。我正在努力的是:

  1. 第一次運行,將沒有預訂號碼,所以我不能簡單地加1到數據庫表中的最後一個ID。我需要一種方法來檢查,如果最後一個數字事實上確實有10000

我用蛋糕php和我得到的ID號的方式基本是使用

$ids = $this->find('first', array('order' => 'Booking.id DESC', 'fields' => 'Booking.id')); 

有任何想法嗎?

回答

3

你既可以重新創建Booking表或者使得id場開始於10000改變它

重新創建:

DROP TABLE IF EXISTS Booking; 
CREATE TABLE IF NOT EXISTS Booking (
    id INT NOT NULL AUTO_INCREMENT, 
    /* Other fields here */ 
    PRIMARY KEY (id) 
) AUTO_INCREMENT = 10000; 

或改變:

ALTER TABLE Booking AUTO_INCREMENT = 10000; 

你只需要做一次。之後,您可以更確定最後一個預訂ID是10000還是更大。

+0

嗯。那麼這個自動增加每個新添加的表?因爲我寧願它沒有。我想以編程方式創建預訂ID ...並將其作爲字段插入。在我的應用程序中出於控制原因 –

+0

ID上的AUTO_INCREMENT屬性意味着如果您沒有爲新插入到「預訂」中的行提供值,將使用默認值「MAX(id)+ 1」 。沒有什麼能夠阻止您完全控制ID的價值,並在您每次創建新的預訂時爲其提供價值。 –

+0

編輯我的答案澄清。 –

相關問題