【问题标题】:Why when I try create table in SQLite by python it shows me: error near "<": syntax error为什么当我尝试通过 python 在 SQLite 中创建表时它显示:“<”附近的错误:语法错误
【发布时间】:2021-11-19 13:29:04
【问题描述】:

我通过 python 测试 sql 命令。一般来说,一切都很好,在这种情况下,它不起作用。

import sqlite3


conn = sqlite3.connect('Chinook_Sqlite.sqlite')


cursor = conn.cursor()

result = None

try:
    cursor.executescript("""CREATE TABLE <New>;""")
    result = cursor.fetchall()
except sqlite3.DatabaseError as err:
    print("Error: ", err)
else:
    conn.commit()


print(result)


conn.close()

【问题讨论】:

  • 我不确定,如果 SQLLite 允许创建名称为 且没有任何列的表
  • 你的表名是
  • 是的,它是“新”
  • 那你为什么写&lt;New&gt;
  • 您是否尝试过查找表创建语句的外观? sqlite.org/lang_createtable.html

标签: python sql sqlite


【解决方案1】:

Name 不带 并且必须在 in () 之后包含:名称、类型、默认值。 https://www.sqlite.org/lang_createtable.html - 谢谢@deceze

“CREATE TABLE”命令用于在 SQLite 中创建新表 数据库。 CREATE TABLE 命令指定以下属性 新表:

  • 新表的名称。

  • 在其中创建新表的数据库。可以在主数据库、临时数据库或任何附加的数据库中创建表 数据库。

  • 表格中每一列的名称。

  • 表中每一列的声明类型。

  • 表中每一列的默认值或表达式。

  • 每列使用的默认排序规则。

  • 表的主键(可选)。支持单列和复合(多列)主键。

  • 每个表的一组 SQL 约束。 SQLite 支持 UNIQUE、NOT NULL、CHECK 和 FOREIGN KEY 约束。

  • (可选)生成的列约束。

  • 该表是否为 WITHOUT ROWID 表。

cursor.executescript("""CREATE TABLE New ( AuthorId             INT              IDENTITY (1, 1) NOT NULL, AuthorFirstName      NVARCHAR (20)    NOT NULL, AuthorLastName       NVARCHAR (20)    NOT NULL, AuthorAge            INT               NOT NULL);""")

【讨论】:

    猜你喜欢
    • 2019-09-07
    • 2013-08-12
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-08
    相关资源
    最近更新 更多