我想在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
答案 0 :(得分:2)
您的CREATE TABLE
声明似乎是问题所在。在定义列时,您不需要重复表名。试试这个:
c.execute("CREATE table MOLECULE (NUMBER INT, NAME TEXT, \"MOLECULAR FORMULA\" TEXT)");
我还使用转义双引号替换了MOLECULAR FORMULA
列周围的单引号。双引号是在SQLite中转义名称的标准方法。如果这不起作用,您可以尝试使用下划线作为分隔符,例如MOLECULAR_FORMULA
,不需要任何转义。