2014-05-09 59 views
0

我目前在MySQL中有這個觸發器。 (表1,事件:插入前)如何在SQLite中將兩列合併爲另一列?

set new.combinedColumn = concat(trim(new.column1), trim(new.column2)) 

如何合併兩列這樣的,除了在SQLite的? 我已經嘗試了多種不同的方式,一直無法獲得工作聲明。

這是我迄今爲止

BEFORE INSERT ON [Table] 
FOR EACH ROW 
BEGIN 

set Column1 = column2 || column3; 

END > 

我得到

5/9/2014 2:19:34 PM: SQL Error: near "set": syntax error <CREATE TRIGGER [insert] 
+0

這似乎確實有兩個問題,什麼是SQLite等同於MySQL函數'CONCAT'和'TRIM';如果是這樣,這裏有這個問題[我們怎樣才能在sqlite中連接字符串?[Stack Overflow](http://stackoverflow.com/questions/6134415/how-can-we-concatenate-string-in-sqlite)並且有一個'在SQLite中修剪功能可能是等效的。 –

+0

您是否閱讀過[documentation](http://www.sqlite.org/lang_createtrigger.html)?你嘗試了什麼? –

+0

您的一個問題不太可能對其他人有所幫助,因爲您的一個問題只是要求某人將有效的任意表達式從一個SQL變體轉換爲另一個。 –

回答

0

的SQLite沒有SET語句錯誤;觸發器中允許的唯一語句是SELECT/INSERT/UPDATE/DELETE。 因此,您不能影響要插入觸發器的值;你必須在之後更新表格:

CREATE TRIGGER [...] 
AFTER INSERT ON MyTable 
FOR EACH ROW 
BEGIN 
    UPDATE MyTable 
    SET Column1 = Column2 || Column3 -- or trim(...) 
    WHERE rowid = NEW.rowid; 
END;