sqlite3のテーブル内の既存の列のデフォルト値を変更するにはどうすればよいですか?sqlite3列のデフォルト値を変更する
は私がhidden
という名前のブール型のカラムでnotes
という名前のテーブルを持っています。デフォルトはtrueに設定されています。これをfalseに設定します。
sqlite3のテーブル内の既存の列のデフォルト値を変更するにはどうすればよいですか?sqlite3列のデフォルト値を変更する
は私がhidden
という名前のブール型のカラムでnotes
という名前のテーブルを持っています。デフォルトはtrueに設定されています。これをfalseに設定します。
私はあなたがテーブル全体を交換することなくできるとは思わない。 fine manualから:
SQLのSQLiteがサポートされてい
コンプリートのALTER TABLEのサポート
のみRENAME TABLEを実装し、ALTER TABLEコマンドのCOLUMNバリアントを追加しないことを特徴としています。 DROP COLUMN、ALTER COLUMN、ADD CONSTRAINTなどの他の種類のALTER TABLE操作は省略されています。
したがって、SQLiteの既存の列を変更する方法はありません。私はhidden
の適切なデフォルトで新しいテーブルを作成し、すべてのデータをコピーして元のnotes
テーブルをドロップし、次にrename the new oneをドロップしなければならないと思います。
SQLiteは意図的な機能の多くを省略することにより、リーンとどまります。
SQLiteデータベースブラウザは、あなたがそれで列を削除して、手動でsqlite3のコマンドラインツールを使用してデフォルトでカラムを追加することができますので、あなたは、列を削除することができます。
残念ながら、これを達成するには、恐らくtempテーブルを作成するのと同様に、フードの下であらゆる種類の偽善を実行します。 http://stackoverflow.com/q/805363/32453 – rogerdpack
この点で1点役立つかもしれません。 'drop table'を実行する前に '.dump'を実行してスキーマのダンプとデータを取得してください。それを使用して、変更されたスキーマをすばやく作成し、データを取り込むことができます。 –
codarrior