如何在SQLite中创建一个没有列的表?

xienkqul  于 2023-10-23  发布在  SQLite
关注(0)|答案(4)|浏览(195)

我想在sqlite3中创建一个没有列的表。这在postgres数据库中是可能的,但在sqlite3数据库中是不可能的。有没有什么方法可以实现这一点,或者它根本不受支持(也许在SQL标准中不受支持)?我检查了sqlite3 CREATE TABLE语法,似乎至少有一列,但也许我错过了什么?

w7t8yxp5

w7t8yxp51#

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

szqfcxe2

szqfcxe22#

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

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

smdnsysy3#

你可以创建只有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()
lawou6xi

lawou6xi4#

你不能在SQLite中创建一个没有列的表,但是你可以很容易地创建一个只有一列的表,该列是BLOB类型的空字符串,如下所示。* 如果没有指定类型,则根据文档类型为BLOB类型:

CREATE TABLE person ("");

或者:

CREATE TABLE person ([]);

或者:

CREATE TABLE person (``);

如果你想要的话,你可以添加一行,如下所示:

INSERT INTO person ("") values ('John');

或者:

INSERT INTO person ([]) values ('John');

或者:

INSERT INTO person (``) values ('John');

或者:

INSERT INTO person values ('John');

相关问题