在做物理模型设计时,ERwin R7.2.7及更早的版本并不原生支持MySQL字段的AUTO_INCREMENT属性(即生成的CREATE TABLE语句中不能直接指定字段的自增属性)。用户如果要设置AUTO_INCREMENT属性,只能通过添加Post-Script的方式调用ALTER TABLE来达到目的。网上介绍此的文章很多,此处就不重复了。
现在好了,从ERwin R7.2.7 (国内最流行的D版ERwin是R7.2.5)起,ERwin可以原生支持设置MySQL数据库表的自增属性了。
方法如下:Physical Model下,打开模型的字段窗口,对需要自增的字段在Null Option里选择IDENTITY, 并设置自增字段的起始值,如下图所示。注意,一个表里只能支持一个字段作为自增字段。所有如果你又设置一个表里另一个字段为自增,则之前设置的自增字段自动取消。
另外MySQL要求自增字段必须为主键(PK),所以除了需要将自增字段设为主键,还有注意最后做正向工程生成SQL时,将Referential Integrity中的Primary Key生成方式使用CREATE方式(即在CREATE TABLE时直接指定为主键), 如下图所示。如果选择ALTER方式,生成的SQL语句会使用ALTER TABLE的方式来创建主键。这和MySQL要求CREATE TABLE 时设置自增字段必须同时指明主键的要求相违背,就会导致建表失败。