update SQLite database using insert

1 回表示 (過去 30 日間)
Charles
Charles 2017 年 9 月 18 日
編集済み: Guillaume 2017 年 9 月 22 日
Hello I am trying to update my SQLite database using the following command
insert(conn, 'ClosePriceTable', {'Dates','AUD_CAD', 'AUD_CHF'}, Table_New_datax(2:end,:))
However I rather want to update only if new records are different to current records. Thus I do not want duplicate records in my SQLite database. If the new records are the same as current records then I merely wish to overwrite and not insert the same record again.
The key variable differentiating records is the date.
How can I avoid duplication of records? What command can I use?

回答 (1 件)

Han Du
Han Du 2017 年 9 月 22 日
Duplicates can be avoid by setting Dates to UNIQUE in your query to create the table.
  2 件のコメント
Charles
Charles 2017 年 9 月 22 日
Csn you provide an example as I am new to SQL
Guillaume
Guillaume 2017 年 9 月 22 日
編集済み: Guillaume 2017 年 9 月 22 日
See the SQLite doc
Something like:
CREATE TABLE yourtable (Dates UNIQUE ON CONFLICT REPLACE, ...)
when you create the table.
Note that the ON CONFLICT REPLACE is particular to SQLite, it is not standard SQL. Other database engines will abort the transaction instead of replacing the existing row by your new values. Therefore the other way to do what you want is to first check if your keys already exist in database and do an UPDATE for the ones that do.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeDatabase Toolbox についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by