0

假设我们创建了简单的数据库表,例如:

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))

因此,如果表存在,我们要删除 pass 列并添加 name 列。

这样的事情是否可以通过 SQL 命令和 SQLite pragma 或如何使用 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 回答