当前位置: 首页 > 面试题库 >

在sqlite的表中插入新列?

仲孙逸明
2023-03-14
问题内容

我有一个列的表name,qty,rate。现在,我需要COLNewnameqty列之间添加一个新列。如何在两列之间添加新列?


问题答案:

您有两个选择。首先,您可以简单地添加带有以下内容的新列:

ALTER TABLE {tableName} ADD COLUMN COLNew {type};

其次,更复杂的是,实际上会将列放在所需的位置,这将是重命名表:

ALTER TABLE {tableName} RENAME TO TempOldTable;

然后使用缺少的列创建新表:

CREATE TABLE {tableName} (name TEXT, COLNew {type} DEFAULT {defaultValue}, qty INTEGER, rate REAL);

并用旧数据填充它:

INSERT INTO {tableName} (name, qty, rate) SELECT name, qty, rate FROM TempOldTable;

然后删除旧表:

DROP TABLE TempOldTable;

我更喜欢第二个选项,因为它可以让您在需要时完全重命名所有内容。



 类似资料:
  • 问题内容: 我正在尝试在SQLite(最新版本)表中插入多行,但抛出错误 从这里得到的想法,这是我的SQL查询: 但它抛出 这是我的表结构 我的查询有问题吗? 任何帮助,将不胜感激。 TIA 问题答案: 由于提到了最新版本的SQLite,因此应使用多值插入(自3.7.11版以来受SQLite支持),如下所示: 这是更短,更快,更不容易出错的方法。其他一些数据库(至少MySQL和PostgreSQL

  • 问题内容: 在MySQL中,我会使用 但这会导致SQLite错误。SQLite的正确语法是什么? 问题答案: 在此之前,已经回答了这一问题:是否可以一次在SQLite数据库中插入多行? 要回答您对OMG Ponies的评论,请回答: 从3.7.11版本开始,SQLite确实支持多行插入。理查德·希普(Richard Hipp)评论:

  • 问题内容: 当使用“ ALTER TABLE tab ADD col”时,新列将添加到表的末尾。例如: 桌子会变成 但是,正如我的示例列的命名所暗示的那样,我实际上希望表最终像这样: 在COL_4之前使用COL_3。 除了从头开始重建表之外,是否还有任何标准的SQL可以完成工作?但是,如果没有标准的SQL,我仍然可以使用一些与供应商相关的Oracle解决方案,但是最好还是使用标准解决方案。 谢谢。

  • 问题内容: 我有一个包含3行的列表,每行分别代表一个表行: 如何将此列表插入表中? 我的表结构是: 还是我应该使用列表以外的其他东西? 这是实际的代码部分: 分别插入三个字段是可行的,但是使用单行 要么 才不是。 问题答案:

  • 问题内容: MySQL有这样的东西: 据我所知,SQLite中不存在此功能,我想知道的是,是否有任何方法可以实现相同的效果而不必执行两个查询。另外,如果这不可能,那么您更喜欢什么: SELECT +(插入或更新) 或 UPDATE( 如果UPDATE失败,则 + INSERT ) 问题答案: 因为3.24.0 SQLite还支持upsert ,所以现在您可以简单地编写以下内容

  • 我试图在我的表中插入一条新记录 DSLContext类型中的方法newRecord(Table, Object)不适用于参数(String, ModelBook) 但是和这个一样:http://www.jooq.org/doc/2.5/manual/sql-execution/fetching/pojos/ 所以我不能做: