在文档中没有明确提到( http://dev.mysql.com/doc/refman/6.0/en/drop-table.html )。 我问,因为我刚刚在一个Rails项目中看到一个好奇的数据库迁移,开发人员在删除表之前删除了所有的索引,似乎没有必要。
我试图从数据库中删除除了一个表的所有表,并最终有以下错误: 无法删除或更新父行:外键约束失败 当然,我可以反复试验看看那些关键的约束是什么,并最终删除所有的表,但我想知道是否有一个快速的方法来强制删除所有的表(因为我可以重新插入这些表不想删除)。 Google向我提供了一些build议如下方法的网站: mysql> SET foreign_key_checks = 0; mysql> drop table … mysql> SET foreign_key_checks = 1; 简单的答案是,它并没有真正做到这一招,因为我最终收到了同样的错误,而我能够删除更多的表。 我已经看到堆栈溢出的方式来获取所有的外键链接到某个表,但是这太耗费时间,除非我编写脚本(这是可行的,在没有其他select的情况下) 数据库是4.1,所以我不能使用DROP DATABASE 想法?
Create Table: CREATE TABLE `fuinfo` ( `fid` int(10) unsigned NOT NULL, `name` varchar(40) NOT NULL, `email` varchar(128) NOT NULL, UNIQUE KEY `email` (`email`), UNIQUE KEY `fid` (`fid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 我想放弃email上的唯一键,怎么样?
我怎样才能删除所有的用户表? 我有约束的问题。 当我禁用所有它仍然是不可能的。
如何使用命令提示符在Windows MySQL中删除所有表? 我想这样做的原因是我们的用户可以访问数据库丢弃,但没有权限重新创build数据库本身,因此我们必须手动删除表。 有没有办法一次删除所有的表格? 请记住,大多数表与外键链接,所以他们必须按特定的顺序放置。
有没有一个简单的方法来删除MySQL数据库中的所有表,忽略可能在那里的任何外键约束?
我正在为Oracle数据库编写一些迁移脚本,希望Oracle有类似于MySQL的IF EXISTS构造的东西。 具体来说,每当我想在MySQL中删除一个表时,我都会这样做 DROP TABLE IF EXISTS `table_name`; 这样,如果该表不存在,则DROP不会产生错误,并且该脚本可以继续。 Oracle有类似的机制吗? 我意识到我可以使用下面的查询来检查表是否存在 SELECT * FROM dba_tables where table_name = 'table_name'; 但与DROP捆绑在一起的语法正在逃避我。