2010-05-22 52 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