0

このようなクエリを実行するにはどうすればよいですか? 新しい列を追加するクエリの例を次に示します。

ALTER TABLE [users] ADD COLUMN [description] VARCHAR(255) NOT NULL DEFAULT ''

そのクエリが再度実行されるたびに、次のエラーが生成されます。

SQLiteManager: SQL 構文エラーの可能性: ALTER TABLE [ユーザー] ADD COLUMN [説明] VARCHAR(255) NOT NULL DEFAULT '' [列名の重複: 説明] 例外名: NS_ERROR_FAILURE 例外メッセージ: コンポーネントがエラー コードを返しました: 0x80004005 (NS_ERROR_FAILURE) [ mozIStorageConnection.createStatement]

できればそのエラーをなくしたいです。たとえば、次のクエリを複数回実行してもエラーは発生しません。

CREATE TABLE IF NOT EXISTS [users] ([id_users] INTEGER PRIMARY KEY AUTOINCREMENT)

しかし、SQLite はクエリの最初の IF 条件をサポートしていないため、どうすればよいかわかりません。私も CASE 式を使ってみましたが失敗しました。どんな助けでも大歓迎です。

4

1 に答える 1

2

ALTER TABLE単一のステートメントでこれを行うことはできません。

別のコマンド( などPRAGMA table_info(users))で列が存在するかどうかを確認できます。

于 2013-07-14T13:12:11.827 に答える