我想在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()
使用下面的SQL,您可以在SQLite中创建一个空表:
CREATE TABLE person ("");
或者:
CREATE TABLE person ('');
或者:
CREATE TABLE person ([]);
或者:
CREATE TABLE person (``);