[英]mysql error 1451
我有代碼1451的mysql錯誤。
無法刪除或更新父行,外鍵約束失敗(
online_store_admin
。osa_admin_logs
,約束fk_admins_logs
外鍵(aid
)參考osa_admins
(aid
))
這里是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.