创建带“_”的表与创建不带“_”的表一样吗?

Posted

技术标签:

【中文标题】创建带“_”的表与创建不带“_”的表一样吗?【英文标题】:Is creating a table with a "_" the same thing as creating a table without a "_"? 【发布时间】:2021-08-07 22:16:06 【问题描述】:

我习惯在 SQL 中这样创建表:

String createItems = "CREATE TABLE items(id INTEGER PRIMARY KEY AUTOINCREMENT, ...)

...但是在我正在观看的视频中,导师创建了一个带有“_”的表格:

String createItems = "CREATE TABLE items(_id INTEGER PRIMARY KEY AUTOINCREMENT, ...)

这是一样的,还是有什么不同? 谢谢!

【问题讨论】:

【参考方案1】:

_id 主键命名的约定来自CursorAdapter,它要求在游标中(不一定在表中)有一个具有该名称的列。

除此之外,它只是一个列的标识符。

【讨论】:

嗨,谢谢。所以在我们没有“_”的情况下,我们向游标查询类似: String myQuery = "SELECT * FROM items ORDER BY id ASC" 然后说 Cursor cursor = db.rawQuery(myQuery, null) ,我们会得到一个错误吗?谢谢 对不起,没关系。在这种情况下,我们不会尝试使用 CursorAdapter 将数据从 Cursor 放入 ListView。【参考方案2】:

你认为错在_id 吗? 这只是一个列名,你可以随意命名

【讨论】:

不,为什么需要“_”;我知道你可以随意命名列。 不需要。这是视频中的人使用的前缀,仅此而已。你正在学习一个教程,你接受它的想法,而不是一个字一个字。 好吧,我只是好奇。谢谢。

以上是关于创建带“_”的表与创建不带“_”的表一样吗?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 创建和视图结构一样的表

在mysql中执行带和不带索引的查询

在 Debezium 中无法根据 MySQL 的表创建某些主题

hive学习笔记_hive的表创建

如何创建包含时间戳列的表视图?

SQLAlchemy:没有这样的表,即使它们是实际创建的