2017-11-24 30 views
0

データベース全体の大文字と小文字の区別を無効にできますか?すべてのテーブルのすべての列を意味しますか?SQLite - データベース全体の大文字小文字の区別を無効にする

すでにデータベースを作成している場合はどうなりますか?

すべての列を手動で設定する必要がありますかCOLLATENOCASE

私は

select * from ...table COLLATE NOCASE 

が、どのような私や他のいくつかの新しい人がNOCASE を使用することを忘れてしまった場合、私はテーブルを作成しながら、すべての列のNOCASEを作るの疲れを次のように、いくつかのクエリでNOCASEを試してみました。

答えて

0

テーブルにCOLLATE NOCASEを設定する必要があります。テーブルが既に存在する場合は、ALTER TABLEを使用します。説明および例については、sqlite.orgを参照してください。

UPDATE MrGumbleが正しいですが、SQLiteではALTER TABLEと直接照合を変更することはできません。あなたはこのような中間テーブルを経由する必要があります:あなたのためにこのプロセスを行います(30日間無料トライアル付き)SQLite Maestroと呼ばれるアプリケーションがある

CREATE TABLE table01 (id, name countrycode, comment); 
INSERT INTO table01 SELECT id, name, countrycode, comment FROM table; 
DROP TABLE table; 
CREATE TABLE table (
    id  integer PRIMARY KEY AUTOINCREMENT, 
    name  text COLLATE NOCASE 
    country integer, 
    comment text COLLATE NOCASE 
); 
INSERT INTO table (id, name, countrycode, comment) 
    SELECT id, name, countrycode, comment FROM table01; 
DROP TABLE table01; 

+0

既存の列に対して '照合 'を変更することはできません。 'ALTER TABLE'は列の追加*のみ、またはテーブル全体の名前の変更ができます。あなたのソリューションは、データをコピーする前に、*テーブルを作成するためにテーブルの名前を変更することによって動作します。 – MrGumble

+0

友人私はデータベース全体を変更したい場合... –

+0

@MrGumbleあなたは正しいです。そのために中間テーブルを作成する必要があります。上記の更新された回答をご覧ください。 –

関連する問題