2016-02-07 19 views
0
def q1(): 
db.executescript(
    DROP VIEW IF EXISTS q1; 

    CREATE VIEW q1 AS 
    SELECT C.company_name, A.price_amount 
    FROM companies as C, acquisitions as A 
    WHERE C.status = 'acquired' and C.company_name = A.company_name; 

    SELECT * FROM q1; 
) 
    return 
q1() 

當運行上面,我發現了以下錯誤:SQL DROP VIEW與如果

DROP VIEW IF EXISTS Q1; ^ 語法錯誤:無效語法

有人能看到我在做什麼錯嗎?

+0

我看不出有任何的報價。這是你傳遞的一個字符串嗎?它應該像'db.executescript(「DROP VIEW IF EXISTS q1;」)''? –

+0

omg這正是問題所在。謝謝!! –

回答

0

你可以使用CREATE OR REPLACE VIEW代替,同時去除DROP VIEW線完全

+0

謝謝,但你看到我做錯了什麼? –

+0

你使用了什麼數據庫?根據文檔,如果你使用的是mysql,它應該可以工作。 http://dev.mysql.com/doc/refman/5.7/en/drop-view.html – radoh

+0

我使用sqlite –

0

可能有2個問題,我看到它的方式。 1.在刪除視圖之前,您沒有引用模式名稱。 2.您沒有提交由DDL命令執行的操作。

請參考SQLite的網站語法 drop-view-stmt