Mysql和python用于考勤系统

时间:2014-03-25 18:46:34

标签: python mysql

我正在尝试用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'")

1 个答案:

答案 0 :(得分:2)

您的表定义应该是相当静态的。您应该只在设计时/部署时添加datestamp列一次(在大多数情况下)。但是,每次运行代码时,ALTER TABLE表语句都会尝试将列添加到表中,这意味着每次最初添加后都会出错。相反,您应该执行insert / update语句来设置列的值,但是您还没有真正显示足够的代码来提供其他建议。

你的问题表明你对关系数据库设计有一个基本的误解,你最好退后一步,确保你理解这些结构。