簡體   English   中英

mysql錯誤1451

[英]mysql error 1451

我有代碼1451的mysql錯誤。

無法刪除或更新父行,外鍵約束失敗( online_store_adminosa_admin_logs ,約束fk_admins_logs外鍵( aid )參考osa_adminsaid ))

這里是sql語句:

\n\n drop table如果存在osa_admins;\n 如果不存在則創建表osa_admins(\n  aid int unsigned not null auto_increment, \n  uid varchar(50)not null, \n  pass char(41)not null, \n  erp_id int unsigned not null, \n  last_login int unsigned not null,\n  is_block tinyint unsigned not null,\n  menus varchar(50)not null,\n  is_login tinyint unsigned not null,\n  ip_login char(15)not null,\n\n  使用btree約束idx_osa_admins主鍵(輔助)\n );\n 插入osa_admins值\n (NULL,'root',密碼('6789'),'0','0','0','*','0','127.000.000.001'),\n (NULL,'ryu',密碼('6789'),'0','0','0','*','0','127.000.000.001');\n\n drop table如果存在osa_admin_logs;\n 如果不存在則創建表osa_admin_logs(\n  lid bigint unsigned not null,\n  aid int unsigned not null,\n  dates int unsigned not null,\n  記錄文本不為空,\n\n  使用btree(lid)約束idx_osa_admin_logs主鍵,\n  約束fk_admins_logs外鍵(輔助)\n   引用osa_admins(援助)\n   完全匹配\n   在更新級聯\n   在刪除級聯\n );\n 插入osa_admin_logs值\n (NULL,'2','0','這里有一些動作'),\n (NULL,'2','0','再次,這里有一些動作');\n\n

當我使用這個陳述時出現問題:

從osa_admins刪除,其中aid ='2';

我想我已經設置了“刪除級聯”。 有誰知道如何刪除級聯? 所以我沒有必要手動檢測osa_admin_logs數據。 哦,我使用innodb作為數據庫引擎(我有默認的mysql)。

對不起,我問同樣的問題有答案,請告訴我在哪里可以得到我的問題。

謝謝。

使用以下命令執行此操作:

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

從約束中刪除match full

使用顯式MATCH子句不會產生指定的效果,並且還會導致忽略ON DELETE和ON UPDATE子句。 出於這些原因,應該避免指定MATCH。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM