在doctrine2中,我有一個實體,它有一個從webservice提供的主鍵,並且還有一個應該是自動增量的索引。在doctrine2中是否可以有一個不是主鍵的自動增量列?
我可以在mysql中手動設置,但不能使其在doctrine2中工作。
在doctrine2中,我有一個實體,它有一個從webservice提供的主鍵,並且還有一個應該是自動增量的索引。在doctrine2中是否可以有一個不是主鍵的自動增量列?
我可以在mysql中手動設置,但不能使其在doctrine2中工作。
自動增量限制與您正在使用的數據庫有關。 在Mysql中,Mysql_autoincrement,它也取決於你正在使用的引擎。 爲例:
對於MyISAM並且可以在多列索引 次級柱指定AUTO_INCREMENT BDB表。在這種情況下,用於AUTO_INCREMENT列的 生成的值被計算爲
可以對AUTO_INCREMENT一個通用文檔here
在一般的AUTO_INCREMENT被保留以數值字段是標識符的一部分索引(涉及一個或多個列)。
所以這可以適用於MySQL。
然而在教義auto_incriment似乎只alllowed爲@Id(主鍵)
21.2.9。 @GeneratedValue
指定哪個策略用於由@Id註釋的 實例變量的標識符生成。此註釋是可選的 ,只有在與@Id一起使用時纔有意義。
如果未使用@Id指定此註釋,則默認使用NONE策略 。
必需屬性:
策略:設置標識符生成策略的名稱。有效的 值爲AUTO,SEQUENCE,TABLE,IDENTITY,UUID,CUSTOM和NONE。 例子:
?php
/**
* @Id
* @Column(type="integer")
* @GeneratedValue(strategy="AUTO")
*/
protected $id = null;
你可能想以防萬一找到工作,張貼關於它
/**
* @Id
* @Column(name="id", type="integer")
* @GeneratedValue(strategy="AUTO")
*/
protected $id;
這將工作MySQL的一票!希望能幫助到你!
OP特別詢問「不是主鍵的列」,你的答案涉及主鍵 – 2016-03-19 17:20:55
我用INT AUTO_INCREMENT UNIQUE
/**
* @var integer
*
* @ORM\Column(type="integer", name="sequence", nullable=true, columnDefinition="INT AUTO_INCREMENT UNIQUE")
*/
protected $sequence = null;
主義遷移束columnDefinition
產生
$this->addSql('ALTER TABLE table_name_here ADD sequence INT AUTO_INCREMENT UNIQUE');
至於學說似乎自動增量限制爲ID字段,你找到一個解決辦法? – TrtG 2014-04-09 14:34:26