2010-05-22 75 views
4

我有一个讨厌的表,不会删除和它阻碍了我的开发环境刷新:(无法删除mySQL表。 (错误1050)

我知道这表存在。举例......

mysql> select * from uc_order_products_qty_vw limit 10; 
+-----+-------------+---------+---------+---------+---------+ 
| nid | order_count | avg_qty | sum_qty | max_qty | min_qty | 
+-----+-------------+---------+---------+---------+---------+ 
| 105 |   1 | 1.0000 |  1 |  1 |  1 | 
| 110 |   5 | 1.0000 |  5 |  1 |  1 | 
| 111 |   1 | 1.0000 |  1 |  1 |  1 | 
| 113 |   5 | 1.0000 |  5 |  1 |  1 | 
| 114 |   1 | 1.0000 |  1 |  1 |  1 | 
| 115 |   1 | 1.0000 |  1 |  1 |  1 | 
| 117 |   2 | 1.0000 |  2 |  1 |  1 | 
| 119 |   3 | 1.3333 |  4 |  2 |  1 | 
| 190 |   5 | 1.0000 |  5 |  1 |  1 | 
| 199 |   2 | 1.0000 |  2 |  1 |  1 | 
+-----+-------------+---------+---------+---------+---------+ 
10 rows in set (0.00 sec) 

然而,当我尝试砸......

mysql> DROP TABLE IF EXISTS uc_order_products_qty_vw; 
Query OK, 0 rows affected, 1 warning (0.00 sec) 

它不工作,该表仍然存在,并警告说这...

mysql> show warnings limit 1; 
+-------+------+------------------------------------------+ 
| Level | Code | Message         | 
+-------+------+------------------------------------------+ 
| Note | 1051 | Unknown table 'uc_order_products_qty_vw' | 
+-------+------+------------------------------------------+ 
1 row in set (0.00 sec) 

感觉很尴尬。

回答

4

从名字判断它可能是一个视图。尝试使用DROP VIEW

DROP VIEW uc_order_products_qty_vw 

DROP TABLE不会为视图的工作:

CREATE VIEW test_vw AS SELECT 1; 
SELECT * FROM test_vw; -- works 
DROP TABLE test_vw;  -- error: Unknown table 'test_vw' 
DROP VIEW test_vw;  -- works 
+1

呀,'vw'在最后似乎是一个大破绽,这是一个_view_而不是一个表。 – paxdiablo 2010-05-22 10:51:42

+0

不知道是否有一个参数可以通过我的mysqldump将不正确的“DROP TABLE IF EXISTS”语句变为“DROP VIEW IF EXISTS”? – doublejosh 2010-05-27 02:50:59