我想在sqlite3中创建一个没有列的表。这在postgres数据库中是可能的,但在sqlite3数据库中是不可能的。有没有什么方法可以实现这一点,或者它根本不受支持(也许在SQL标准中不受支持)?我检查了sqlite3 CREATE TABLE语法,似乎至少有一列,但也许我错过了什么?
CREATE TABLE
w7t8yxp51#
SQLite不支持零列表。或者在SQL标准中。
szqfcxe22#
我也有同样的问题,因为我想要一个只有rowid字段的表。虽然您可能无法创建一个没有列的表,但可以使用以下代码创建一个仅将rowid字段作为主键的表:
CREATE TABLE tablename (rowid INTEGER PRIMARY KEY) WITHOUT ROWID;
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()
lawou6xi4#
你不能在SQLite中创建一个没有列的表,但是你可以很容易地创建一个只有一列的表,该列是BLOB类型的空字符串,如下所示。* 如果没有指定类型,则根据文档类型为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');
4条答案
按热度按时间w7t8yxp51#
SQLite不支持零列表。或者在SQL标准中。
szqfcxe22#
我也有同样的问题,因为我想要一个只有rowid字段的表。虽然您可能无法创建一个没有列的表,但可以使用以下代码创建一个仅将rowid字段作为主键的表:
smdnsysy3#
你可以创建只有id列的表,而不是创建空表:
lawou6xi4#
你不能在SQLite中创建一个没有列的表,但是你可以很容易地创建一个只有一列的表,该列是
BLOB
类型的空字符串,如下所示。* 如果没有指定类型,则根据文档类型为BLOB
类型:或者:
或者:
如果你想要的话,你可以添加一行,如下所示:
或者:
或者:
或者: