Mysql error 1451

I have a mysql error with code 1451.

Unable to delete or update the parent row: foreign key failed ( online_store_admin. osa_admin_logs, CONSTRAINT fk_admins_logsFOREIGN KEY ( aid) LINKS osa_admins( aid))

here is the sql instruction:

drop table if exists osa_admins;
create table if not exists osa_admins (
 aid int unsigned not null auto_increment, 
 uid varchar (50) not null, 
 pass char (41) not null, 
 erp_id int unsigned not null, 
 last_login int unsigned not null,
 is_block tinyint unsigned not null,
 menus varchar (50) not null,
 is_login tinyint unsigned not null,
 ip_login char (15) not null,

 constraint idx_osa_admins primary key using btree (aid)
);
insert into osa_admins value
(NULL, 'root', password ('6789'), '0', '0', '0', '*', '0', '127.000.000.001'),
(NULL, 'ryu', password ('6789'), '0', '0', '0', '*', '0', '127.000.000.001');

drop table if exists osa_admin_logs;
create table if not exists osa_admin_logs (
 lid bigint unsigned not null,
 aid int unsigned not null,
 dates int unsigned not null,
 logs text not null,

 constraint idx_osa_admin_logs primary key using btree (lid),
 constraint fk_admins_logs foreign key (aid)
  references osa_admins (aid)
  match full
  on update cascade
  on delete cascade
);
insert into osa_admin_logs values
(NULL, '2', '0', 'some action here'),
(NULL, '2', '0', 'again, some action here');

, :

osa_admins, help = '2';

, "on delete cascade". - , ? osa_admin_logs detelet . oh, innodb db engine ( mysql, ).

, , , , .

.

+3
2

match full

MATCH , ON DELETE ON UPDATE , . , MATCH, .

MySql docs http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

+7

:

SET foreign_key_checks = 0; 
DELETE FROM your_table_name WHERE your_condition;
SET foreign_key_checks = 1;
+8

Source: https://habr.com/ru/post/1781567/


All Articles