Tag: 改变表

SQLite修改列

我需要修改SQLite数据库中的列,但是我必须以编程方式执行,因为数据库已经在生产中了。 从我的研究中,我发现为了做到这一点,我必须做到以下几点。 用新的模式创build一个新表 将旧表中的数据复制到新表中 放下旧桌子 将新表重命名为旧表名 对于那些应该相对容易的事来说,这似乎是一个荒谬的工作量。 有没有更简单的方法? 我需要做的就是改变现有列的约束,并给它一个默认值。

ALTER TABLE添加列如果不在SQLite中存在

最近我们需要将列添加到一些现有的SQLite数据库表中。 这可以通过ALTER TABLE ADD COLUMN 。 当然,如果桌子已经被改变了,我们想要放弃它。 不幸的是,SQLite不支持ALTER TABLE上的IF NOT EXISTS子句。 我们目前的解决方法是执行ALTER TABLE语句并忽略任何“重复的列名”错误,就像这个Python例子 (但在C ++中)。 但是,我们常用的设置数据库模式的方法是使用包含CREATE TABLE IF NOT EXISTS和CREATE INDEX IF NOT EXISTS语句的.sql脚本,该脚本可以使用sqlite3_exec或sqlite3命令行工具执行。 我们不能把ALTER TABLE放在这些脚本文件中,因为如果这个语句失败了,它后面的任何东西都不会被执行。 我想在一个地方有表格定义,而不是分割.sql和.cpp文件。 有没有办法编写一个解决方法来ALTER TABLE ADD COLUMN IF NOT EXISTS在纯SQLite SQL的ALTER TABLE ADD COLUMN IF NOT EXISTS ?

sqlite alter table在单个语句中添加MULTIPLE列

是否有可能改变表中添加MULTIPLE列在sqlite中的单个语句? 以下将无法正常工作。 alter table test添加列mycolumn1文本,添加列mycolumn2文本;

我如何将一列添加到不允许空值的Postgresql数据库?

我使用下面的查询(对Internet进行了消毒)向我的Postgresql数据库添加了一个新的“NOT NULL”列: ALTER TABLE mytable ADD COLUMN mycolumn character varying(50) NOT NULL; 每次运行此查询时,都会收到以下错误消息: ERROR: column "mycolumn" contains null values 我很难过 我哪里错了? 注意:我主要使用pgAdmin III(1.8.4),但是当我从terminal内运行SQL时收到了同样的错误。

如何重命名SQLite数据库表中的列?

我需要重新命名SQLite数据库中某些表中的几列。 我知道一个类似的问题已经被问到以前的stackoverflow,但它是一般的SQL,并没有提到SQLite的情况。 从ALTER TABLE的SQLite文档中,我收集到,不可能“容易地”做这样的事情(即单个ALTER TABLE语句)。 我想知道有人知道用SQLite做这样的事情的一般SQL方法。