我正在尝试用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']
缺席卷数:
^{pr2}$当前卷数:
[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'")
表定义应该是相当静态的。您应该在设计时/部署时只添加一次
datestamp
列(在大多数情况下)。但是,ALTER TABLE
table语句在每次代码运行时都试图将该列添加到表中,这意味着每次最初添加该列后,它都会出错。相反,您应该执行insert/update语句来设置列的值,但是您并没有真正显示足够的代码来为我们提供额外的建议。在您的问题表明您对关系数据库设计有一个基本的误解,最好退一步,确保您理解这些结构。在
相关问题 更多 >
编程相关推荐