2017-10-09 92 views
0

執行下面的DML時,我得到令牌未知的QTY,完全喪失了爲什麼QTY包含在表定義的前面。該錯誤發生在COMPUTED列上。令牌未知,火鳥計算

CREATE TABLE LINE_ITEMS(
    LINE_ITEM_ID INTEGER NOT NULL, 
    QTY   NUMERIC(10,4) DEFAULT 0, 
    PRICE  NUMERIC(10,4) DEFAULT 0, 
    AMOUNT  COMPUTED BY QTY * PRICE,  
    CONSTRAINT PK_LINE_ITEMS PRIMARY KEY(LINE_ITEM_ID))); 

回答

4

你需要把括號中的表達:

CREATE TABLE LINE_ITEMS 
(
    LINE_ITEM_ID INTEGER NOT NULL, 
    QTY   NUMERIC(10,4) DEFAULT 0, 
    PRICE  NUMERIC(10,4) DEFAULT 0, 
    AMOUNT  COMPUTED BY (QTY * PRICE),  
    CONSTRAINT PK_LINE_ITEMS PRIMARY KEY(LINE_ITEM_ID) 
); 
+0

是啊,我已經發現自己,並要回答我的問題。在Borrie的書中,有一個計算字段連接字符串的例子,它沒有parens,但是它上面的語法定義確實有(expr)。 – user1455270

+1

@ user1455270是的,但這本書就是這樣一本書。您可以從https://www.firebirdsql.org/en/reference-manuals/:IB6 LangRef或重新編寫的格式scratch FB2.5 Reference中查看文檔。您也可以使用IBExpert或FlameRobin等GUI IDE,然後將創建的表視爲SQL腳本 –