我正在尝试用python和mysql开发一个考勤录音系统。我有一个列表,其中包含了一个' a'和' p'值。此列表等于存在的滚动数。现在每当我运行python代码时,都应该将此列表添加到以datestamp为列的表中。
现在错误是每次它给出的代码错误: 完整清单: -
['P', 'P', 'P', 'A', 'P', 'P', 'P', 'P', 'A', 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P']
缺少卷号:
[4, 9]
目前的卷号:
[1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
写入数据库:
Traceback (most recent call last):
File "take.py", line 47, in <module>
cursor.execute("ALTER TABLE student ADD column datestamp Date;")`enter code here`
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1060, "Duplicate column name 'datestamp'")
答案 0 :(得分:2)
您的表定义应该是相当静态的。您应该只在设计时/部署时添加datestamp
列一次(在大多数情况下)。但是,每次运行代码时,ALTER TABLE
表语句都会尝试将列添加到表中,这意味着每次最初添加后都会出错。相反,您应该执行insert / update语句来设置列的值,但是您还没有真正显示足够的代码来提供其他建议。
你的问题表明你对关系数据库设计有一个基本的误解,你最好退后一步,确保你理解这些结构。