我想在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
,不需要进行任何转义。