2010-06-16 42 views
0

一個MySQL表的AUTO_INCREMENT的問題說,這一切它認爲:-) 什麼是執行查詢,如最好的方法:如何改變使用Doctrine

ALTER TABLE tablename AUTO_INCREMENT = 1; 

使用原則?

回答

2

您必須執行PHP中的查詢是正常的,我很害怕,因爲這不是教義支持的東西。

請注意,如果您運行ALTER TABLE tablename AUTO_INCREMENT = 1;,那麼下一個值將是當前表+1中最高的值。如果表中已有記錄,則沒有明確將該值設置爲1。

0

您是否試圖操縱表格的自動增量值?如果你想這樣做,你可以做

SET @@auto_increment_increment=10; 

請記住,這是一個系統範圍的變量,將影響所有表。

通常,我會勸阻你操縱主鍵(我只是假設thsi)的方式生成。

如果你需要給一個自定義的值,比如說i * 10,你可以寫一個觸發器/函數來完成這個工作或者更簡單,你可以創建一個視圖爲你提供最後插入的id(比如說150 ),並增加你的價值(如10),所以你可以得到160.

主義本身不支持這一點(據我所知),這在我看來是好的。如果您需要爲主鍵設置不同的增量,例如PostgreSWL和Oracale可以這樣做,因爲它們使用序列來生成可由開發人員操作的密鑰