假设我的数据库中有5个MyISAM表。每个表都有一个键,我们称它为“id_num”...在MyISAM中删除之前,我应该检查表中是否存在行吗?
“id_num”是我用来将所有表连接在一起的字段。 “id_num”的某个值可能出现在所有表格中,或者有时只出现在表格的一个子集中。
如果我想删除数据库中某个“id_num”的所有实例,我可以对所有表执行DELETE命令,还是应该检查“id_num”的值是否存在?
DELETE * FROM table1 WHERE id_num = 123;
DELETE * FROM table2 WHERE id_num = 123;
DELETE * FROM table3 WHERE id_num = 123;
DELETE * FROM table4 WHERE id_num = 123;
DELETE * FROM table5 WHERE id_num = 123;
或者我应该先在每个表上执行一个SELECT命令来检查这些行在删除之前是否存在于表中?什么是最佳做法?在其他有一个表id_num
的PK,让id_num
一个FK -
(我在这里使用的MyISAM所以级联删除是不是一种选择。)
使用forgein密钥并级联删除 – sandeepKumar 2013-02-15 06:10:39