mysql - Table with FK refer to a table with two PK -
mysql - Table with FK refer to a table with two PK -
i have table1 id , name columns both pk, table2 have fk refer table1 column: name, when create fk in mysql workbench, error:
error 1215: cannot add together foreign key constraint
table1: level, id enum(), name varchar(20) both pk.
table2: class, id bigint pk autoincrement, level_name varchar(20), number int.
level_name
fk pk name
adding foreign key need care somethings in case in table1 level have made primary key (id,name)
, in sec table referencing level_name
foreign key wrong need refer pair of columns class table in order create foreign key add together level_id
of same type of id
column table1 level
, reference pair foreign key (level_id, level_name)
table level
see below sample schema tables
create table `level` ( `id` enum('1','2','3','4','5') not null, `name` varchar(20) not null, primary key (`id`,`name`) ) engine=innodb default charset=latin1; create table `class` ( `id` bigint(20) not null auto_increment, `level_name` varchar(20) not null, `level_id` enum('1','2','3','4','5') default null, `number` int(11) default null, primary key (`id`), key `fk_key` (`level_id`,`level_name`), constraint `fk_key` foreign key (`level_id`, `level_name`) references `level` (`id`, `name`) ) engine=innodb default charset=latin1;
demo mysql foreign-keys
Comments
Post a Comment