我想在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

最佳答案

您的CREATE TABLE语句似乎是问题所在。定义列时不需要重复表名。尝试使用此:

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


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

08-07 16:38