sqlite3:创建没有列的表

问题描述 投票:0回答:4

我想在sqlite3中创建没有列的表。在 postgres 数据库中可以,但在 sqlite3 数据库中则不行。有什么方法可以实现这一点,或者它根本不支持(也许不在sql标准中?)我检查了sqlite3

CREATE TABLE
语法,看起来,必须至少有一列,但也许我错过了一些东西?

sqlite create-table
4个回答
17
投票

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


3
投票

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

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

1
投票

您可以创建仅包含 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()

0
投票

使用下面的SQL,您可以在SQLite中创建一个空表:

CREATE TABLE person ("");

或者:

CREATE TABLE person ('');

或者:

CREATE TABLE person ([]);

或者:

CREATE TABLE person (``);
© www.soinside.com 2019 - 2024. All rights reserved.