sqlite3.OperationalError:重复的列名:MOLECULE

时间:2017-06-14 05:28:56

标签: python sqlite

我想在sqlite数据库表中创建一个列,我可以在其中写入小数和文本值。

c.execute("CREATE table MOLECULE(MOLECULE NUMBER INT, MOLECULE NAME TEXT, 'MOLECULAR FORMULA' TEXT )");

c.execute("INSERT INTO MOLECULE VALUES (1, 'WATER', 'H20')");

c.execute("INSERT INTO MOLECULE VALUES (2, 'X', ' BaFe0.5Nb0.5O3')");

conn.commit()

我正在尝试使用字符串,它给了我错误:sqlite3.Operational Error: duplicate column name: MOLECULE

1 个答案:

答案 0 :(得分:2)

您的CREATE TABLE声明似乎是问题所在。在定义列时,您不需要重复表名。试试这个:

c.execute("CREATE table MOLECULE (NUMBER INT, NAME TEXT, \"MOLECULAR FORMULA\" TEXT)");

我还使用转义双引号替换了MOLECULAR FORMULA列周围的单引号。双引号是在SQLite中转义名称的标准方法。如果这不起作用,您可以尝试使用下划线作为分隔符,例如MOLECULAR_FORMULA,不需要任何转义。