我有两张桌子:
事件:
CREATE TABLE incidencies ( id_inc INT(7) ZEROFILL NOT NULL auto_increment PRIMARY KEY, empresa VARCHAR(40), maquina VARCHAR(20), tipus_inc VARCHAR(20), estat_mon VARCHAR(20), estat_inc VARCHAR(20), dia_inc DATE, hora_inc TIME, descripcio VARCHAR(200) ) CHARACTER SET utf8 engine=innodb;
评论:
CREATE TABLE comentaris ( id_inc INT(7) ZEROFILL NOT NULL, id_com INT(3) ZEROFILL NOT NULL auto_increment, data_com DATE, hora_com TIME, comentari VARCHAR(999), PRIMARY KEY(id_inc, id_com), FOREIGN KEY (id_inc) REFERENCES incidencies (id_inc) ON DELETE CASCADE ON UPDATE CASCADE ) CHARACTER SET utf8 engine=innodb;
如您所见,在COMENTARIS
表上,ID_INC
是一个外键,其起源是 auto_incremental,但不再是COMENTARIS
.
现在我确实想将字段设为ID_COM
auto_incremental,并将它们设为主键。
该表应如下所示:
ID_INC | ID_COM 001 | 001 001 | 002 001 | 003 002 | 004 003 | 005
问题是 MySQL 似乎将其检测ID_INC
为 auto_incremental 字段,该字段不再存在于COMENTARIS
表中。
当我尝试制作ID_COM
auto_incremental 时,我收到以下错误消息:
ERROR 1075 (42000):表定义不正确;只能有一个自动列,并且必须将其定义为键
数据库需要是InnoDB
引擎。
有什么解决办法吗?