hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。 |
テーブルを作成するときにUNIQUE制約を加えると「値の重複が許されない列(カラム)」を作ることができます。 既存の行の持つ値と重複した値を持つ行をINSERT文で追加しようとすると、後から追加しようとしたデータが追加されません。
後から追加するデータの方を有効にする(既存のデータを破棄する)場合は、INSERT文の代わりにREPLACE文を利用します。このとき主キーは新しいものが振り直され、古い主キーは破棄されます。 主キーを変更したくない場合は、WHERE句を利用してUPDATE文を利用する必要があるでしょう。
12345678910111213141516171819// HSP3.1 & SQLele1.14 & SQLite3.6.14 で動作確認済み#include "sqlele.hsp"sql_open ":memory:"sql_q "CREATE TABLE [テーブル] (id INTEGER PRIMARY KEY, keyword TEXT UNIQUE)"sql_q "BEGIN"sql_q "INSERT INTO [テーブル] (keyword) VALUES ('赤')" // 1回目sql_q "INSERT INTO [テーブル] (keyword) VALUES ('青')" // 2回目sql_q "INSERT INTO [テーブル] (keyword) VALUES ('緑')" // 3回目sql_q "INSERT INTO [テーブル] (keyword) VALUES ('赤')" // 4回目だが、すでに「赤」があるので挿入されないsql_q "INSERT INTO [テーブル] (keyword) VALUES ('白')" // 5回目だが、idは4になるsql_q "REPLACE INTO [テーブル] (keyword) VALUES ('緑')" // すでに「緑」があるが、REPLACE文なので置きかえられる(idは5)sql_q "COMMIT"sql_q "SELECT * FROM [テーブル]"repeat statsql_nextloopsql_closestop