2017-03-08 20 views
-1

我不知道是否能在MySQL中創建表中的新列,因爲我想這在MySQL中建立一個新的列兩列之間的差異

cursor.execute("ALTER TABLE options_20161229 ADD daysuntillexpiration INT(6)") 
cursor.execute ("INSERT INTO options_20161229 (daysuntillexpiration) VALUES ('Expiration-Datadate')") 

但是兩列

之間的差異,是錯誤的語法。

任何想法請。 非常感謝

+0

請出示表描寫的特徵,並與預期的結果 – Jens

+0

一些樣本數據和第一次嘗試刪除singlecodes – Jens

+0

你會這麼好心來標記答案正確。 http://stackoverflow.com/help/someone-answers – e4c5

回答

0

使用virtual column

在MySQL 5.7.6中,CREATE TABLE支持 生成列的規範。生成列的值根據列定義中包含的 表達式計算。

ALTER TABLE Expiration-Datadate ADD daysuntillexpiration INT AS (Expiration-Datadate) 

現在,你甚至不需要是插入,因爲MySQL將動態計算列數據,並給你結果

如果你是在一箇舊版本的MySQL,你可以使用CREATE VIEW的同樣的效果

CREATE VIEW myview AS SELECT *, Expiration-Datadate as d from mytable 
相關問題