mysql建立外键方式,给个理由就可以!
CREATE TABLE IF NOT EXISTS T_ACCOUNT(
ACC_ID INT(6) NOT NULL AUTO_INCREMENT COMMENT '帐号ID',
ACC_NAME varchar(255) NOT NULL COMMENT '帐号名',
ACC_PASSWORD VARCHAR(255) NOT NULL COMMENT '帐号密码',
ACC_EMPIRETIME datetime default NULL COMMENT '失效时间',
USER_ID INT(6) NOT NULL COMMENT '关联用户ID',
REMARK varchar(100) COMMENT '口令备注',
MODIFY_COUNT int(4) NOT NULL default '0' COMMENT '修改次数',
CREATED_DATE datetime NOT NULL COMMENT '创建日期',
CREATED_BY varchar(20) NOT NULL COMMENT '创建人',
CREATED_PRG_NAME varchar(20) NOT NULL COMMENT '创建的子项目名',
LAST_MODIFY_DATE datetime default NULL COMMENT '最后修改时间',
UPDATED_PRG_NAME varchar(20) default NULL COMMENT '最后修改的子项目名',
UPDATED_BY varchar(20) default NULL COMMENT '最后修改人',
FLG_COUNT int(4) default '0' COMMENT '修改次数标签',
PRIMARY KEY (ACC_ID),
UNIQUE KEY UN_ACC_NAME (ACC_NAME ),
UNIQUE KEY UN_USER_ID (USER_ID ), //有它就不能创建外键,理由是???
CONSTRAINT FK_USER_ID FOREIGN KEY (USER_ID) REFERENCES T_USER(USER_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
最后采用ALTER实现了要求。
ALTER TABLE T_ACCOUNT ADD INDEX FK_ACC_USER_ID (USER_ID), ADD CONSTRAINT FK_ACC_USER_ID FOREIGN KEY(USER_ID)
REFERENCES T_USER (USER_ID);
大家给个理由,平时还真没注意这个问题。