sqlite3:创建没有列的表

sqlite3:创建没有列的表,sqlite,create-table,Sqlite,Create Table,我想在sqlite3中创建没有列的表。这在postgres数据库中是可能的,但在sqlite3数据库中是不可能的。是否有任何方法可以实现这一点,或者它只是不受支持(可能不是在sql标准中?)我检查了sqlite3CREATE TABLE语法,似乎必须至少有一列,但可能我遗漏了什么?SQLite不支持零列表。或者在SQL标准中。我有同样的问题,因为我想要一个只有rowid字段的表。虽然您可能无法创建没有列的表,但可以使用以下代码创建一个仅以rowid字段作为主键的表: CREATE TABLE t

我想在sqlite3中创建没有列的表。这在postgres数据库中是可能的,但在sqlite3数据库中是不可能的。是否有任何方法可以实现这一点,或者它只是不受支持(可能不是在sql标准中?)我检查了sqlite3
CREATE TABLE
语法,似乎必须至少有一列,但可能我遗漏了什么?

SQLite不支持零列表。或者在SQL标准中。

我有同样的问题,因为我想要一个只有rowid字段的表。虽然您可能无法创建没有列的表,但可以使用以下代码创建一个仅以rowid字段作为主键的表:

CREATE TABLE tablename (rowid INTEGER PRIMARY KEY) WITHOUT ROWID;

您可以创建只有id列的表,而不是创建空表:

def create_table(DATABESE_NAME):
    conn = sqlite3.connect(DATABESE_NAME)
    c = conn.cursor()
    c.execute(''' CREATE TABLE IF NOT EXISTS rate_table(
    id INTEGER PRIMARY KEY AUTOINCREMENT) ''')
    conn.commit()
    conn.close()

我很好奇零列表能解决什么问题。想详细说明吗?我正在做一个宠物项目和测试。出于测试目的,我可以在postgres中创建空表,但对于sqlite,相同的自动测试失败了。所以我想确定我是否做错了什么。因为sql标准不支持空表,所以我不需要关心它。@Tim one可能希望创建空表,然后继续添加列。有趣的是,though@LukasEder那个除了完全的学术目的之外,似乎没有什么用处。PostgreSQL甚至不需要FROM子句,因此它不需要像Oracle那样的双表。@BaconBits:您可以使用这些表在连接中实现一些很酷的谓词逻辑。没有人说这不是学术性的:)