0

次のような単純なdbテーブルを作成したとします。

CREATE TABLE IF NOT EXISTS users (email varchar(100) UNIQUE NOT NULL primary key, pass varchar(100))

今、私たちはそれが次CREATE TABLE IF NOT EXISTS or merge with previous oneのようになりたい

users (email varchar(100) UNIQUE NOT NULL primary key, name varchar(100))

したがって、テーブルが存在する場合は、パス列を削除して名前列を追加します。

SQLコマンドとSQLiteプラグマを介してそのようなことは可能ですか、それともC SQLite apiを使用してそれを行う方法ですか?

4

1 に答える 1

1

結局のところ、SQLite では、単一の列を削除したい場合、テーブル全体を再作成する必要があります提供されているリンクの例は非常に優れていますが、ニーズに合わせて微調整することもできます。

これが私が思いついたものです。

CREATE TEMPORARY TABLE users_1(email varchar(100) unique not null primary key, user varchar(100));
INSERT INTO users_1 SELECT email, '' FROM users;
DROP TABLE users;
CREATE TABLE users(email,user varchar(100));
INSERT INTO users SELECT email, user FROM users;
DROP TABLE users_1;
于 2012-09-13T02:04:46.717 に答える