2012-07-03 59 views
3

我想插入一個表中的行,當我做插入時,我想在另一個表中同時插入另一行。Android - SQLite觸發器與Java SQL插入,什麼更有效?

在Android應用程序中執行此操作的更有效方法是什麼?

當我插入一行並執行SQL處理插入或者在Java中使用database.insert()執行兩次插入時,執行觸發器效率更高嗎?

插入第二行所需的信息已經在第一次插入。

謝謝!

回答

1

我想在表中插入一行,並且當我執行插入操作時,我想要 在另一個表中同時插入另一行。

爲了確保使用此TRIGGER,因爲它的數據庫層上工作,所以你只需要創建它,然後當你做的東西它會被稱爲本身(取決於你如何實現觸發)。

此外它更快,你不會明確地說,只是讓數據庫工作。所有數據庫都能做到的,讓我們在數據庫上做。

更新:

因此,與@Graham Borland公司你可以使用還插入在TRANSACTION略一商量之後。
看看Android Database Transaction

結論什麼是更快?

我正好不知道是不是因爲我沒有性能測試,但是可以肯定的TRANSACTIONS是最安全的,我認爲,但是否快於TRIGGERS這個我不知道到底,但交易的使用是非常好,主要是安全的方法來防止數據庫進入不正確的狀態,這是非常不可取的。

+0

爲什麼它比事務內的多個插入更快,更安全?你能提供任何參考嗎? –

+0

@GrahamBorland @GrahamBorland也許我的說法太勇敢了,但我認爲數據庫能夠做的所有事情都是更快更安全的,但是你的建議是非常正確的,我忘記了他可以使用事務,也可能更好,因爲事務(你知道它但是對於其他人)保證如果所有操作都成功完成,則已知特徵ACID。 – Sajmon

+0

因此,從您的回答中,我明白Android數據庫交易肯定是更安全的,但您對性能問題並不清楚。 觸發器是否更快?它們是否更快地抵消交易的安全性和簡單性? –