如果在 SQLite 中不指定新列的数据类型怎么办?

Posted

技术标签:

【中文标题】如果在 SQLite 中不指定新列的数据类型怎么办?【英文标题】:What if you don't specify the datatype of new column in SQLite? 【发布时间】:2019-11-10 01:49:34 【问题描述】:

如果不指定新列的数据类型怎么办

ALTER TABLE celebs 
ADD COLUMN twitter_handle TEXT;  #what if we don't specify it's datatype TEXT?

SELECT * FROM celebs; 

【问题讨论】:

你为什么不自己运行这个alter语句然后找出答案?即使它可以正常工作(它可能),也不希望运行这样的语句。 @Jerome 是的,我想知道如果没有设置数据类型会发生什么,没有错误,但我想知道你是否可以通过这种方式将各种数据插入其中 @TimBiegeleisen 假设 sqlite 标签是正确的,它不应该“出错”。但是,如果不阅读文档,sqlite 类型的亲和力会是什么并不是很明显,所以简单地运行它不会透露细节,除非它不会导致错误。 @Thesnake123 实际上,您可以将任何类型的数据插入到任何 sqlite 列中,而不管列的类型如何。如果您阅读文档,您会发现 sqlite 没有严格的类型,而是一种类型亲和性,它规定了如何解释、存储和比较某些值。 对于几乎所有其他 DBMS,这只会导致错误 【参考方案1】:

对于 sqlite,类型不是必需的。默认类型亲和性将为 NUMERIC。详情请参阅official documentation。

【讨论】:

以上是关于如果在 SQLite 中不指定新列的数据类型怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

在 sqlite3 中修改列的类型

使用sql更改表的列的数据类型和添加新列和约束

通过按类型分组创建一个新列,新列的值是整个组的列值

Python pandas - 如果项目在列表中,则为新列的值

怎么在dataGridView中不连接数据库添列的值

scala/spark 代码中不允许在配置单元中添加列